第一次写博客,就把第一篇文章给今天在sicily上刷的--最大值最小化
先上题:
把一个包含n个正整数的序列划分成m个连续的子序列(每个正整数恰好属于一个序列)。设第i个序列的各数之和为S(i),如何让所有S(i)的最大值尽量小?
例如序列1 2 3 2 5 4,划分成3个序列的最优方案为1 2 3 | 2 5 | 4,其中S(1)=6, S(2)=7, S(3)=4,最大值为7;如果划分成1 2 | 3 2 | 5 4,则最大值为9,不如刚才的好。
n≤106,所有数之和不超过109。
Input
There may be multiple cases.
The first line of the input gives two integer n and m. The next line contains n integers.
Output
For each case, output the minimum value.
Sample Input
Copy sample input to clipboard
6 3
1 2 3 2 5 4
Sample Output
7
//目标学会用猜数字(二分)的方法,换个角度来解决问题
/*我们用二分查找的办法,查找范围是[数组的最大值(max),数组的和(sum)],
* 在这个范围里面的元素x(二分查找用mid表示),
* 能否