【CSU-1023】解题报告(二分)
原始题目
1023: 修路
- Time Limit: 1 Sec
- Memory Limit: 128 Mb
- Submitted: 632
- Solved: 340 ### 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
Hint
Source
中南大学第四届大学生程序设计竞赛
解题思路
- 每个队伍必须连续修路,每个队伍效率相同(每天都修单位长度)
- 可以得到修路的下限和上限,二分修路长度最终得到答案
解题代码
1 |
|
收获与反思
- 二分思维转换
- 已知上界下界后利用二分逼近答案
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!