LightOJ - 1076 Get the Containers(二分)
2015-11-06 22:29
323 查看
题目大意:给你N个数字,要起将这N个数字划分成K个区间,并要求每个区间的和的最大值最小
解题思路:最大值最小问题,二分解决
解题思路:最大值最小问题,二分解决
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; const int N = 1000010; LL v ; LL l, r; int n, m, cas = 1; void init() { scanf("%d%d", &n, &m); l = r = 0; for (int i = 0; i < n; i++) { scanf("%lld", &v[i]); l = max(v[i], l); r += v[i]; } v = 0; } bool judge(LL mid) { LL sum = 0; int num = 1; for (int i = 0; i <= n; i++) { if (sum + v[i] > mid) { sum = v[i]; num++; } else sum += v[i]; } return num <= m; } void solve() { while (l <= r) { LL mid = (l + r) >> 1; if (judge(mid)) r = mid - 1; else l = mid + 1; } printf("Case %d: %lld\n", cas++, r + 1); } int main() { int test; scanf("%d", &test); while (test--) { init(); solve(); } return 0; }
相关文章推荐
- Daily Scrumming* 2015.11.6(Day 18)
- Daily Scrumming* 2015.11.5(Day 17)
- Libev源码分析06:异步信号同步化--sigwait、sigwaitinfo、sigtimedwait和signalfd
- Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 笔记
- 【Codeforces Round 329 (Div 2) B】【映射 排序 贪心】Anton and Lines 查看所有直线pair在[x1,x2]范围内是否有交点
- poj 3691 DNA repair(AC自动机+DP)
- CF 509B Painting Pebbles
- hdoj GCD Again 1787 (欧拉函数)
- 远端绑定Service第一篇之AIDL进程间通信
- Daily Scrum (2015/11/5)
- 关于Odoo 选择供应商实现产品过滤功能
- hdu 1867 A + B for you again
- 线程同步 等待定时器 WaitableTimer 内核对象 CreateWaitableTimer
- Google最新人工智能算法RankBrain的实现--写在后面的话
- aidl详解:同一APK内,不同apk间的activty与service通信
- FastDFS与Raid思考
- DataInputStream FileInputStream 区别
- 8.3.14 Paint几个枚举-常量值以及ShadowLayer阴影效果
- 训练集(train set)、 验证集(validation set) 、测试集(test set)
- 解决U盘在mac air下格式化后在windows上无法显示