最大值最小化
来源:互联网 发布:php curl post 数据流 编辑:程序博客网 时间:2024/04/30 03:54
贪心+二分入门题:
#include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#define CLR(arr,val) memset(arr,val,sizeof(arr))using namespace std;void in(int &a){ char ch; while((ch=getchar())<'0'||ch>'9'); for( a=0;ch>='0'&&ch<='9';ch=getchar()) a=a*10+ch-'0';}/*int d,x,y;void extend_gcd(int a,int b,int& d,int& x,int& y){ if(b==0) { d=a; x=1; y=0; return; } extend_gcd(b,a%b,d,x,y); int t=x-(a/b)*y; x=y; y=t;}int main(){ int a,b; while(cin>>a>>b) { extend_gcd(a,b,d,x,y); while(x<0) x+=b; cout<<x<<endl; } return 0;}*/#define N 10005int p[N],n,m,maxx,sum;void input(){ maxx=-1,sum=0; for(int i=0;i<n;++i) { cin>>p[i]; if(maxx<p[i]) maxx=p[i]; sum+=p[i]; }}bool _test(int t){ bool flag=true; int s=0,num=0; for(int i=0;i<n;++i) { if(p[i]>t) { flag=false; break; } if(s+p[i]>t) { s=p[i]; num++; if(num>m-1) { flag=false; break; } } else { s+=p[i]; } } return flag;}int bin_search(){ int l=maxx,r=sum; while(l<=r) { int mid=(l+r)>>1; if(_test(mid)) r=mid-1; else l=mid+1; } return l;}int main(){ int T; cin>>T; while(T--) { cin>>n>>m; input(); cout<<bin_search()<<endl; } return 0;}
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化问题
- 最大值最小化问题
- 题目1502:最大值最小化
- 最大值最小化--uva714
- 最大值最小化 二分查找
- HLJU1043: 最大值最小化
- hdu 4004 最大值最小化
- android 4.0 上面修改了分区之后,重新烧录,重启后,kernel被破坏掉了
- USB鼠标驱动源代码分析
- Linux系统安装出错后出现grub rescue的修复方法
- Android检测系统版本号
- shape定义控件
- 最大值最小化
- ASP.NET IsPostBack属性剖析
- iOS 问题总结
- linux查找文件内容grep
- WDK编译libwdi
- 与“零值”的比较
- 如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。
- JSON格式编码操作类
- android防止APK被反编译的方法