二分答案 POJ3273
2015-08-21 16:02
363 查看
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #include <algorithm> using namespace std; int n,m; int arr[100010]; int reans; int flag; void dfs(int mi,int ma) { if(flag==1) return ; if(mi==ma) { flag=1; reans=mi; return ; } int num=1; int tmp=0; int ans=(mi+ma)/2; for(int i=0;i<n;i++) { if(tmp+arr[i]<=ans) { tmp=tmp+arr[i]; } else { tmp=arr[i]; num++; } } if(num>m) { dfs(ans+1,ma); } else if(num<=m) { dfs(mi,ans); } } int main() { while(scanf("%d%d",&n,&m)!=EOF) { int ma=0; for(int i=0;i<n;i++) { scanf("%d",&arr[i]); if(arr[i]>ma) ma=arr[i]; } flag=0; dfs(ma,1000000000); cout<<reans<<endl; } return 0; }
View Code
相关文章推荐
- Importing a Microsoft Excel Source Definition
- Android 点击两次返回退出应用
- 寒冰王座
- mac系统使用技巧链接汇总
- 文章标题
- GDI+画电子印章
- 剑指off-判断5张牌是否是顺子
- WPF 自定义控件依赖属性怎么实时变化?
- 利用mod_wsgi部署Django应用
- C#获取网络图片显示到picturebox
- Linux 查看文件和文件夹大小
- 电赛总结(四)——波形发生芯片总结之AD9834
- php-fpm 启动参数及重要配置详解
- c#用户控件的生命周期
- 莫比乌斯函数
- android 组件DatePicker实例
- UVA---10608-Friends(并查集)
- String,创建对象问题
- 2.DB-Mysql++实例
- 编程方法论/架构设计/模式相关转载链接汇总