解题思路:
注意事项:
参考代码:
//分巧克力问题--标准的二分模板题 //判断条件以及二分上下界 #include <bits/stdc++.h> using namespace std; const int vinf = 1e6+100; int hei[vinf]; //存储长 int wid[vinf]; //存储宽 int n,k; int ans = 0; //判断当前正方形的边长是否满足条件 bool isok(int ss) { int temp = 0; for(int i=1;i<=n;++i){ temp += (hei[i]/ss)*(wid[i]/ss); } if(temp>=k) return true; return false; } int main(){ //输入数据 cin>>n>>k; for(int i=1;i<=n;++i){ cin>>hei[i]>>wid[i]; //第 i 块巧克力的尺寸 } //开始二分处理 int left = 1; //最小也是为1 //最大的正方形的边长是 长度最da的巧克力的chang int vmax = 0; for(int i=1;i<=n;++i){ vmax = max(vmax,wid[i]); vmax = max(vmax,hei[i]); } while(left<=vmax) { int mid = left + (vmax - left)/2; if(isok(mid)){ ans = mid; left = mid + 1; } else vmax = mid - 1; } cout<<ans<<'\n'; return 0; }
0.0分
2 人评分
程序员的表白 (C语言代码)浏览:1328 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题8.9 (Java代码)浏览:1335 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:326 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
【亲和数】 (C语言代码)浏览:600 |
有关字符,字符串的输入输出函数说明浏览:479 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:537 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:669 |