Acwing---1227.分巧克力
分巧克力
- 1.题目
- 2.基本思想
- 3.代码实现
1.题目
儿童节那天有 K 位小朋友到小明家做客。
小明拿出了珍藏的巧克力招待小朋友们。
小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。
为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。
切出的巧克力需要满足:
1.形状是正方形,边长是整数2.大小相同
例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。
当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?
2.基本思想
整数二分
时间复杂度O(nlogn)
思路:
首先,巧克力边长肯定是在一个区间内的,是可枚举的。看一下题目数据范围边长 <=1e5 而且题目说了至少能切出 1×1的巧克力,所以答案肯定是在 [1,100000]范围内的。那么我们就可以二分。
当check(mid)满足条件时,也就是分得的巧克力数大于等于k时,那么左边的区间肯定也是满足的,并且mid也是可取的,所以l = mid。
当不满足时,很显然答案肯定在我们分得的区间左边,因为mid已经不满足了,所以我们的r = mid-1
3.代码实现
import java.io.IOException;
import java.util.Scanner;public class _1227分巧克力 {static Scanner sc = new Scanner(System.in);static int w[] = new int[100010];static int h[] = new int[100010];static int n, k;public static void main(String[] args) throws IOException {n = sc.nextInt();k = sc.nextInt();for (int i = 0; i < n; i++) {h[i] = sc.nextInt();w[i] = sc.nextInt();}//二分遍历符合条件的 x(最大边长)int l = 1, r = 100000;//最小1*1while (l < r) {int mid = l + r + 1 >> 1;//判断此时 mid边长 是否符合if (check(mid)) l = mid;else r = mid - 1;}System.out.println(l);}private static boolean check(int mid) {int res = 0;//枚举 n块巧克力 是否够 k 块for (int i = 0; i < n; i++) {// h * w 的巧克力 可以分成边长为 mid 的块数res += (h[i] / mid) * (w[i] / mid);//够分if (res >= k) return true;}return false;}
}
Acwing---1227.分巧克力相关推荐
- C++实现 1227. 分巧克力
C++实现 1227. 分巧克力 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官 ...
- 蓝桥杯java第八届第九题--分巧克力
标题: 分巧克力儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们.小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形.为了公平起见,小明需要从这 N 块巧克力中切 ...
- 2017蓝桥杯省赛---java---B---9(分巧克力)
题目描述 标题: 分巧克力儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们.小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形.为了公平起见,小明需要从这 N 块 ...
- 2017蓝桥杯c语言C组承压计算,蓝桥杯2017Java B组---分巧克力and承压计算
分巧克力 package lala; /* *儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起 ...
- 蓝桥杯第八届省赛JAVA真题----分巧克力
标题: 分巧克力 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N 块巧克 ...
- 题目 1885: 2017 分巧克力
蓝桥杯2017年第八届真题-分巧克力 - C语言网 做题记录: 第一次(16分钟/78')超时: 通过举例,可以直到长宽 a*b的巧克力,分边长为i的巧克力可以分(a/i)*(b/i)块 思路:ma ...
- 【每日一题2019-11-14】-蓝桥杯 prev37 分巧克力
[每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 文章目录 [每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 1.问题描述 2.输入格式 3.样例输入 4.样例输出 5 ...
- 蓝桥杯 分巧克力 python
蓝桥杯 分巧克力 python 题目标题 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见, ...
- Java实现第八届蓝桥杯分巧克力
分巧克力 题目描述 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N 块巧 ...
- 分巧克力 【蓝桥杯】
题目描述 标题: 分巧克力儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们.小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形.为了公平起见,小明需要从这 N 块 ...
最新文章
- 52个有用的 Docker 工具
- KMP算法的JavaScript实现
- java代码优化_java代码之美(11)---java代码的优化
- .NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记...
- python播放音乐同步歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码
- 软件测试测试 python_Python测试简介
- C++/C--mmap()详解
- wpf treeview调整子菜单间距_完全由C编写,高度可移植,超级牛逼的菜单架构!...
- Symfony1.4.11学习笔记(四):数据模型
- HDU 4704 Sum (费马小定理)
- pscp使用详解 Windows与Linux文件互传工具
- 参数估计:矩估计和最大似然估计
- SpringBoot中接口跨域问题
- ffmpeg h264 h265 视频格式操作
- numpy.dot()和x.dot(y)函数介绍和示例
- 搭建 WordPress 博客教程(超详细)
- 什么是瀑布图_什么是瀑布图以及为什么我需要一个
- CPU微指令相关概念
- php打开excel文件,PHP读取Excel文件的简单示例
- 对面向接口编程的理解
热门文章
- 我的世界电脑版java怎么弄scp模组_我的世界scpjs模组
- 高通平台power_supply 框架下添加第三方充电IC的驱动方法
- 深度学习:自动编码器基础和类型
- matlab 用visio编辑_在线运行Matlab, Visio, Office, SPSS...,科研者的福利
- 应用程序无法正常启动,提示错误代码0xc000007b怎么办?
- vue中绑定style样式的方式
- SQL Server 2017下载,安装,打开步骤
- sqlserver2017
- PTA 游泳池改造 (30 分)
- cmd中如何切换到指定盘符的指定文件夹目录