// 在单调递增序列a中查找>=x的数中最小的一个(即x或x的后继)
while (l < r) {
int mid = (l + r) / 2;
if (a[mid] >= x) r = mid; else l = mid + 1;
} // 在单调递增序列a中查找<=x的数中最大的一个(即x或x的前驱)
while (l < r) {
int mid = (l + r + 1) / 2;
if (a[mid] <= x) l = mid; else r = mid - 1;
} // 实数域二分,设置eps法
while (l + eps < r) {
double mid = (l + r) / 2;
if (calc(mid)) r = mid; else l = mid;
} // 实数域二分,规定循环次数法
for (int i = 0; i < 100; i++) {
double mid = (l + r) / 2;
if (calc(mid)) r = mid; else l = mid;
} // 把n本书分成m组,每组厚度之和<=size,是否可行
bool valid(int size) {
int group = 1, rest = size;
for (int i = 1; i <= n; i++) {
if (rest >= a[i]) rest -= a[i];
else group++, rest = size - a[i];
}
return group <= m;
} // 二分答案,判定“每组厚度之和不超过二分的值”时能否在m组内把书分完
int l = 0, r = sum_of_Ai;
while (l < r) {
int mid = (l + r) / 2;
if (valid(mid)) r = mid; else l = mid + 1;
}
cout << l << endl;

最新文章

  1. Python标准模块--built-ins函数
  2. Ambari组件黄色预警
  3. 弹幕文化与HTML5
  4. Cmake的交叉编译
  5. Unity3D在IOS上的优化小结
  6. Struts2中实现Web项目的初始化工作
  7. IT公司笔试题(一)
  8. Windows 7 驱动开发
  9. NtpClient
  10. Cloudinsight Agent install script
  11. C语言 百人拉百灯问题
  12. HDU 1285
  13. 【转】Android中如何使用Bundle传递对象[使用Serializable或者Parcelable] -- 不错
  14. 非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
  15. 永洪BI配置测试及遇到的一些问题
  16. 读书笔记 effective c++ Item 18 使接口容易被正确使用,不容易被误用
  17. 团队作业8——Beta 阶段冲刺5th day
  18. C#单例测试(懒汉式双锁保证线程安全)
  19. iOS中 UIProgressView 技术分享
  20. Linux/Window之定时任务脚本编写

热门文章

  1. html的嵌套规则
  2. 在OS X环境下MySQL启动时报错
  3. 官方解读:Salesforce线上考试新政与福利
  4. Extjs更新grid
  5. Daily Scrum 1/11/2016
  6. PHP-fpm 远程代码执行漏洞(CVE-2019-11043)复现
  7. 人体和电脑的关系——鸟哥的LINUX私房菜基础学习篇读书笔记
  8. MVC-路由解析
  9. MySQL之唯一索引、外键的变种、SQL语句数据行操作补充
  10. 关于synergy的问题