2017第八届Java A组蓝桥杯省赛真题第九题:分巧克力

2023-11-07

第九题:分巧克力

儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。

为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:

  1. 形状是正方形,边长是整数
  2. 大小相同
    1
    2
    3
    4
    例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。

当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?

输入
第一行包含两个整数N和K。(1 <= N, K <= 100000)
以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)
输入保证每位小朋友至少能获得一块1x1的巧克力。

输出
输出切出的正方形巧克力最大可能的边长。

样例输入:
2 10
6 5
5 6

样例输出:
2

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
解题思路:用个二分法查找合适的分割,得到最大的正方形的宽度,就能获得答案.

	private static int k;
	private static int N;
	private static int ans;
	public static void main(String[] args) {
		Scanner sc =new Scanner(System.in);
		N=sc.nextInt();
		k=sc.nextInt();
		int[][] arr=new int[N][2];
		for (int i = 0; i < N; i++) {
			arr[i][0]=sc.nextInt();//h
			arr[i][1]=sc.nextInt();//w
		}
		int l=1,r=100001,mid=(l+r)/2;
		while(l<=r) {
			mid=(l+r)/2;
			int cnt=0;
			for (int i = 0; i < arr.length; i++) {
				cnt+=(arr[i][0]/mid)*(arr[i][1]/mid);
			}
			if(cnt>=k) {//数量超过k,当找到最大的宽度的mid时,结束运行,ans即为答案
				l=1+mid;
				ans=mid;
			}else {
				r=mid-1;
			}
		}
		System.out.println(ans);
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2017第八届Java A组蓝桥杯省赛真题第九题:分巧克力 的相关文章

随机推荐

  • Rust 近乎宗教般信仰的案例

    Rust 近乎宗教般信仰的案例 亚历山大 西多罗夫 众所周知 Rust 社区对 Rust 非常热情 有些人甚至责怪我们偶尔表现得像一个邪教 恐怕我不会打消这个印象 因为在这篇文章将证明 Rust 使您成为一个更好的工程师 更好的管理者和更好
  • 学习JavaScript必须知道的10个难点,你都知道吗?

    立即执行函数 立即执行函数 即Immediately Invoked Function Expression IIFE 正如它的名字 就是创建函数的同时立即执行 它没有绑定任何事件 也无需等待任何异步操作 function 代码 funct
  • Redmi4X刷入Ubuntu touch真正成为一台远程无需人操作的云服务器(就是配置垃圾)

    前言 前几天把高一买的手机相册和文件拷贝到了电脑上 寻思这旧手机还能干嘛 搜了一下有做监控的 行车记录仪的 最后决定还是做Linux服务器香啊 用了一天时间参考网上的教程做完了 自己再做一下总结和一些弯路记录 因为是米粉所以不得不说小米牛逼
  • 科研不是比赛,而是一种对未知和完美的自我追求——跟邢波(Eric Xing)面对面聊科研

    编者按 6月26日 2014年国际机器学习大会 ICML 在北京国际会议中心完美落幕 作为机器学习领域两大顶尖年会之一 这是 ICML大会30多年来首次来到中国和远东 在国内的机器学习界震动不小 身为本次大会主席的卡耐基梅隆大学计算机系教授
  • MySQL为什么选择使用B+树作为索引的数据结构

    看完到某大佬写的关于mysql索引的数据结构的文章 文章写的非常详细 在这里总结一下 首先 索引的特点是查询快 排序 那么首先就会想到树 1 二叉查找树 Binary Search Tree BST 二叉查找树是一种支持快速查找的数据结构
  • 注册AppStore开发者账号以及收款设置的流程详解(2019最新版)

    最近和朋友倒腾了一个APP 想在App Store上架 因此就在注册个人开发者账号的过程中踩了不少坑 申请App Store的开发者账号果然不是一件容易的事情 并且我发现在设置收款时尤其容易踩坑 期间 我也看了不少分享 但由于苹果对申请流程
  • Owl Eyes: Spotting UI Display Issues via Visual Understanding

    2020年ASE的一篇文章 ASE 全称 IEEE ACM International Conference on Automated Software Engineering 是软件工程领域的顶级会议 标题 通过视觉理解发现UI显示问题
  • CTF学习笔记——Include&Ping Ping Ping

    一 ACTF2020 新生赛 Include 1 题目 2 解题步骤 点进去看了一下 根据题目猜测 应该是和php的文件包含漏洞有关 尝试了一下显示phpinfo 意料之中的失败了 看wp才了解到 这是一道伪协议的题目 然后翻了一下之前的博
  • layui如何动态上传文件

    HTML div class layui form item od customer src div
  • csu 1811 Tree Intersection 2016湖南省赛 I

    Problem acm csu edu cn csuoj problemset problem pid 1811 vjudge net contest 161962 problem I Reference blog csdn net qwb
  • Android 计时器Chronometer 使用及源码分析,常见移动app开发框架

    主界面布局文件 仅保留Chronometer相关布局
  • 基于协同过滤的用户推荐的java例子

    基于协同过滤的用户推荐的java例子 基于用户的协同过滤推荐算法 1 基于用户的协同过滤推荐算法 2 基于用户的协同过滤推荐算法通过寻找与目标用户具有相似评分的邻居用户 通过查找邻居用户喜欢的项目 推测目标用户也具有相同的喜好 基于用户的协
  • Linux环境下如何杀死僵尸进程

    我们在使用top命令查看主机性能的的时候会在第二行会查看到有zombie关键字 此关键字代表僵尸进程的意思 僵尸进程 当进程退出时 它向父进程发送一个SIGCHLD信号 默认情况下总是忽略SIGCHLD信号 此时进程状态一直保留在内存中 直
  • K8S 学习四(POD详解)

    POD结构 每个pod中都可以包含一个或者多个容器 这些容器可以分为两类 1 用户程序所在的容器 数量可多可少 上图的第一 第二层 2 Pause容器 这是每个pod都会有的一个根容器 它的作用有两个 2 1 可以以它为依据 评估整个Pod
  • cas单点登录-自定义登录验证(四)

    我们在使用SSO单点登录的时候不只是验证一下用户名和密码是否一致 有时候还需要验证一些别的校验 那么这一张讲一下如何自定义验证器 自定义验证很重要 因为我们后续的很多功能 都是基于自定义验证 CAS服务器的org apereo cas au
  • 在浏览器地址栏键入URL按下回车之后会经历什么?

    在浏览器地址栏键入URL按下回车之后主要会经历以下7个步骤 1 查找浏览器缓存 如果查找到缓存中有我们URL对应的文件 则判断是否命中强缓存 如果命中直接读取使用即可 如果强缓存没有命中 判断协商缓存是否命中 但协商缓存不论是否命中都会发送
  • es部署--生产环境--01--es单机

    es部署 生产环境 01 es单机 前提 使用hd用户登陆 完成基础环境搭建 https blog csdn net zhou920786312 article details 118212302 1 资源下载 elasticsearch
  • Asp.net页面之间传递参数的几种方法

    1 使用QueryString变量 QueryString是一种非常简单的传值方式 他可以将传送的值显示在浏览器的地址栏中 如果是传递一个或多个安全性要求不高或是结构简单的数值时 可以使用这个方法 但是对于传递数组或对象的话 就不能用这个方
  • 【C++】-- 哈希(上万字详细配图配代码从执行一步步讲解)

    目录 哈希 常见哈希函数 除留余数法 哈希冲突 哈希冲突解决 闭散列 a 线性探测 插入 查找 删除 线性探测的实现代码 b 二次探测 二次探测的实现 开散列 开散列实现 插入 查找 删除 析构函数 代码汇总 哈希 常见哈希函数 直接定址法
  • 2017第八届Java A组蓝桥杯省赛真题第九题:分巧克力

    第九题 分巧克力 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力