7-5 分巧克力 (30分)
发布日期:2021-06-29 22:18:10 浏览次数:2 分类:技术文章

本文共 936 字,大约阅读时间需要 3 分钟。

7-5 分巧克力 (30分)儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1. 形状是正方形,边长是整数  2. 大小相同  例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入格式:第一行包含两个整数N和K。(1 <= N, K <= 100000)以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000) 输入保证每位小朋友至少能获得一块1x1的巧克力。输出格式:输出切出的正方形巧克力最大可能的边长。输入样例:在这里给出一组输入。例如:2 106 55 6输出样例:在这里给出相应的输出。例如:2
//采用二分查找;#include
struct node{
int hi,wi; }t[10010];int main(){
int minn=1,maxx=100000,i=0,sum=0,j=0,n=0,k=0,mid=0; scanf("%d %d",&n,&k); for(i=0;i
=k) {
minn = mid + 1; } else {
maxx = mid - 1; } } printf("%d",mid); return 0; }

第二种方法,这种会超时,当测试数据足够大时;

//这种方法会超时; #include
struct node{
int hi,wi; }t[10010];int main(){
int n=0,k=0,i=0,j=0,p=0; scanf("%d %d",&n,&k); for(i=0;i
=k); //因为最后跳出while循环的条件就是要小于朋友的个数; //故减一,取上一个的值; printf("%d",b-1); return 0;}

转载地址:https://dingshijie.blog.csdn.net/article/details/108981641 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:7-5 k倍区间 (30分)
下一篇:7-4 承压计算 (25分)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月15日 22时37分03秒