HLG 1039 修路 二分
2015-10-05 20:20
281 查看
修路 | ||||||
| ||||||
Description | ||||||
前段时间,某省发生干旱,B山区的居民缺乏生活用水,现在需要从A城市修一条通往B山区的路。假设有A城市通往B山区的路由m条连续的路段组成,现在将这m条路段承包给n个工程队(n ≤ m ≤ 300)。为了修路的便利,每个工程队只能分配到连续的若干条路段(当然也可能只分配到一条路段或未分配到路段)。假设每个工程队修路的效率一样,即每修长度为1的路段所需的时间为1。现在给出路段的数量m,工程队的数量n,以及m条路段的长度(这m条路段的长度是按照从A城市往B山区的方向依次给出,每条路段的长度均小于1000),需要你计算出修完整条路所需的最短的时间(即耗时最长的工程队所用的时间)。 | ||||||
Input | ||||||
第一行是测试样例的个数T ,接下来是T个测试样例,每个测试样例占2行,第一行是路段的数量m和工程队的数量n,第二行是m条路段的长度。 | ||||||
Output | ||||||
对于每个测试样例,输出修完整条路所需的最短的时间。 | ||||||
Sample Input | ||||||
2 4 3 100 200 300 400 9 4 250 100 150 400 550 200 50 700 300 | ||||||
Sample Output | ||||||
400 900 left 为最长的路 right 为路长总和 mid 需要判断 ACcode: #pragma warning(disable:4786)//使命名长度不受限制 #pragma comment(linker, "/STACK:102400000,102400000")//手工开栈 #include <map> #include <set> #include <queue> #include <cmath> #include <stack> #include <cctype> #include <cstdio> #include <cstring> #include <stdlib.h> #include <iostream> #include <algorithm> #define rd(x) scanf("%d",&x) #define rd2(x,y) scanf("%d%d",&x,&y) #define rds(x) scanf("%s",x) #define rdc(x) scanf("%c",&x) #define ll long long int #define maxn 100005 #define mod 1000000007 #define INF 0x3f3f3f3f //int #define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;++i) #define MT(x,i) memset(x,i,sizeof(x)) #define PI acos(-1.0) #define E exp(1) using namespace std; int main(){ int loop; int a[maxn]; rd(loop); int n,m,right,left; while(loop--){ right=left=0; rd2(m,n); FOR(i,0,m-1){ rd(a[i]); right+=a[i]; left=left>a[i]?left:a[i]; } int mid; while(left<right){ mid=(left+right)/2; int temp=0,cnt=n-1; FOR(i,0,m-1){ if(temp+a[i]<=mid) temp+=a[i]; else { temp=a[i]; cnt--; if(cnt<0) break; } } if(cnt<0) left=mid+1; else right=mid; } printf("%d\n",left); } return 0; } /** 2 4 3 100 200 300 400 9 4 250 100 150 400 550 200 50 700 300 **/ |
相关文章推荐
- 【static&extern】c语言static用法
- velocity自定义动画
- 病毒侵袭持续中---hdu3065(AC自动机模板)
- 【PAT】1003. Emergency (25)
- C++学习–应用篇(Windows/Linux)(书籍推荐及分享)
- 项目成本管理总结
- QT5 学习之路22---事件过滤器
- Matlab-vision包学习-Object Detection and Recognition-标记正例
- GOF 23 设计模式之 备忘录模式(Memento)
- Part 4 using entity framework
- Android基础学习之Preference(配置存储)
- C++学习–基础篇(书籍推荐及分享)
- iOS编程------singleton_AddressBook 单例模式 通讯录
- 文本分类概述
- Java之也谈sleep()和wait()
- poj11195(二维树状数组)
- jsoup 生僻字乱码问题解决
- 补不manjaro系统
- C语言的小知识(二)
- 关于蓝牙开发之数据缓存问题(脏数据)