HDU 3273 二分
来源:互联网 发布:javascript是jsp 编辑:程序博客网 时间:2024/06/16 17:11
不一样的二分;
思路:
*二分的上限下限是:MAX(最大的数字),SUM (总和);
*其中一定有一个数字满足,将N分成M份;
*求最小的;只要当它达到M份时,依然减小上届值;
算法不难,思路想到了就 水到渠成了;
/* *problem ID: POJ 3273 * Author ID: fuqiang * TIME: 2013-07-17 * Algorithm: 二分 * Status: (Accept) */ #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <iomanip>#define maxn 100010int a[maxn],N,M;using namespace std;inline bool check(int mid){int num = 1, sum = 0;for(int i = 0; i <= N; i++){if(sum + a[i] <= mid)sum += a[i];else{sum = a[i];num++;}}return num>M;}int main(int argc, char *argv[]){while(scanf("%d%d",&N,&M)!=EOF){int MAX = 0, sum = 0;for(int i = 1; i <= N; i++){scanf("%d",&a[i]);sum += a[i];MAX = max(MAX,a[i]);}int left = MAX, right = sum, mid;while(left < right){mid = (left + right) / 2;if(check(mid))left = mid + 1;elseright = mid - 1;}printf("%d\n",left); }return 0;}
- HDU 3273 二分
- hdu pie(二分+贪心)
- HDU 2899 求导+二分
- 【二分】hdu 4004
- 【二分】hdu 4022
- 【二分】hdu 4033
- hdu 2899 二分
- HDU 2141 二分
- hdu 4004 二分 过河
- hdu 4190 二分答案
- hdu 4190 #二分答案
- hdu 1150 二分匹配
- hdu 1281 二分匹配
- hdu 3081 二分匹配
- HDU 1045 二分匹配
- HDU 1083 二分匹配
- HDU 3646 DP + 二分
- HDU-2444 二分图
- 递推算法---狼与屠夫
- 宏 #,##,_ _VA_ARGS_ _
- myeclipse 部署tomcat的时候出现错误
- 【diannaoxitong】做好电脑安全设置防止黑客入侵
- 为什么要学习设计模式
- HDU 3273 二分
- switch能否作用在byte、long、String上?
- 东软总结02-文档类的相关操作
- SurfaceView绘图机制
- 偶尔出现的:error:flash download failed +error 56: cannot open file
- 开漏输出
- 用Beyond Compare代替git的difftool和mergetool
- delphi sendmessage
- 对象权限