poj 3273 二分查找
2014-04-17 16:31
381 查看
题意简析: N个数字,分成M组,sum[i],0<=i<M;求max{sum[i]};
可以理解求每组最大的上限中的最小值,即寻找最大化最小值。有点绕口了。
附带嘛。
可以理解求每组最大的上限中的最小值,即寻找最大化最小值。有点绕口了。
附带嘛。
#include <iostream> #include <algorithm> using namespace std; int money[100010]; int n,m; bool f(int k) //枚举上限。 { int cnt=1; //默认为1个大组。 int ans=0; for(int i=1;i<=n+1;i++) { if(money[i]>k) //超过上限了。返回。 return 0; ans+=money[i]; if(ans>k) //如果ans超过了上限 { cnt++; //那么 群组多1 ans=0; // i--; //群组后退一格。 } } return cnt<=m; } int main() { cin>>n>>m; int sum=0; for(int i=1;i<=n;i++) { cin>>money[i]; sum+=money[i]; } int l=0,r=sum; while(r-l>1) { int mid=(l+r)>>1; if(f(mid)) r=mid; else l=mid; }cout<<r<<endl; return 0; }
相关文章推荐
- POJ 3273 Monthly Expense(二分查找)
- poj 3273 Monthly Expense 二分查找
- Monthly Expense(POJ--3273【二分查找】
- poj 3273 Monthly Expense(二分查找)
- POJ 3273 Monthly Expense 二分查找的应用
- poj 3273 Monthly Expense ----二分
- poj 3579 Median 二分查找与lower_bound
- POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)
- 【二分查找】-POJ-2002-Squares
- POJ 3273 Monthly Expense【二分答案】
- POJ-1019 Number Sequence 二分查找
- poj 3273 Monthly Expense (二分)
- POJ 3273 Monthly Expense(二分搜索)
- POJ - 2976 Dropping tests(二分查找,最大化平均值)
- POJ 2366 Sacrament of the sum(二分查找)
- POJ 3579(二分查找差值中间值)
- [POJ 2503] Babelfish【二分查找】
- POJ-3273(二分答案)
- 《挑战程序设计竞赛》3.1.1 二分搜索-最大化最小值 POJ1064 2456 3258 3273 3104 3045
- poj 3636 Nested Dolls 动态更新表的二分查找