ZOJ 2002 Copying Books 二分 贪心
来源:互联网 发布:淘宝客服转正评估表 编辑:程序博客网 时间:2024/05/18 18:45
传送门:Zoj2002
题目大意:从左到右把一排数字k分,得到最小化最大份,如果有多组解,左边的尽量小。
思路:贪心+二分(参考青蛙过河)。
方向:从右向左。
注意:有可能最小化时不够k分。如
3 3
1 2 3
k分得到最小化的最大值是3,分组却只能分两个组。
错误结果是 1 2 / 3.正确结果是1 / 2 / 3
因此要从左到右补齐‘/’
#include<cstdio>#include<cstdlib>#include<iostream>#include<algorithm>#include<memory.h>using namespace std;int n,k;int a[510];int b[510];int used;void _update(){memset(b,0,sizeof(b));//开始把0写成false了。。。。尴尬memset(a,0,sizeof(a));}bool _judge(long long v){ long long temp; used=0; int i=n; while(i>=1) { temp=0; used++; while(temp+a[i]<=v){ temp+=a[i]; i--; if(i<1) break; } } if(used<=k) return true; return false;}void _Cout(long long v){ long long temp; int i=n; used=0; while(i>=1) { temp=0; used++; while(temp+a[i]<=v){ temp+=a[i]; i--; } b[i]=1; } for(i=1;i<n;i++) { cout<<a[i]<<" "; if(b[i]) cout<<"/ "; else if(used<k) { // 补齐cout<<"/ ";used++; } } cout<<a[n]<<endl;}int main(){int i,T;cin>>T;while(T--){ _update(); cin>>n>>k; long long Max=0,M=0; for(i=1;i<=n;i++) { cin>>a[i]; M+=a[i]; if(a[i]>Max) Max=a[i]; } long long L=Max,R=M,mid; while(L<R){ mid=(L+R)/2; if(_judge(mid)) R=mid; else L=mid+1; } _Cout(R);}return 0;}
阅读全文
0 0
- ZOJ 2002 Copying Books 二分 贪心
- ZOJ 2002 Copying Books(二分答案)
- [贪心&&二分]uva714 Copying Books
- Copying Books +uva+二分+贪心
- ZOJ-2002 Copying Books
- ZJU2002 Copying Books - 二分+贪心大败DP
- POJ 1505 Copying Books 二分 + 贪心
- POJ1505:Copying Books(贪心+二分枚举)
- uva 714 - Copying Books(二分+贪心)
- UVA - 714 Copying Books(二分+贪心)
- UVa 714 Copying Books(贪心 二分)
- UVA - 714 Copying Books 抄书 贪心+二分
- 二分,贪心(Copying Books,uva 714)
- UVA 714 Copying Books(二分+贪心)
- Copying Books--(二分)
- Copying Books (二分)
- UVa 714 Copying Books 二分 + 贪心 (最大值最小化问题)
- UVA 714 Copying Books 最大值最小化问题 (贪心 + 二分)
- Android如何实现简单音乐播放器的代码
- Scala基础入门(十 ) Scala for循环使用方法
- 无向图寻找是否存在长度为k的环
- 在VMware-workstation12(虚拟机)上安装uduntu16.04(linux系统)和VMware Tools教程
- 关于洛古p1019单次接龙的一点看法
- ZOJ 2002 Copying Books 二分 贪心
- 欢迎使用CSDN-markdown编辑器
- Maven
- Spring编程<一>
- HDFS架构图
- 【Android笔记】MediaPlayer基本使用方式
- Springboot入门项目
- 快速排序
- leetcode 6