本题可以使用二分答案。
珂珂的吃香蕉速度为 k 时,对于一堆数量为 x 的香蕉,需要的时间为:
⌈kx⌉小猴子珂珂喜欢吃香蕉。
现在有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开,将在 h 小时后回来。
珂珂可以决定自己吃香蕉的速度 k,单位为:根/小时。
每个小时,珂珂会选择一堆香蕉,并从中吃掉 k 根香蕉。如果这堆香蕉少于 k 根,她会吃掉这堆的所有香蕉,并且这一小时内不会再吃其他香蕉。
珂珂喜欢慢慢吃,但她必须在警卫回来之前吃完所有香蕉。
请你求出珂珂能够在 h 小时内吃完所有香蕉的最小整数速度 k。
第一行输入两个整数 n 和 h,分别表示香蕉堆数和警卫返回的时间。
第二行输入 n 个整数 piles[i],表示每堆香蕉的数量。
输出一个整数,表示珂珂可以在 h 小时内吃完所有香蕉的最小速度 k。
1 <= n <= 10^4
n <= h <= 10^9
1 <= piles[i] <= 10^9
4 8
3 6 7 11
4
5 5
30 11 23 4 20
30
5 6
30 11 23 4 20
23
对于样例 1,当珂珂的吃香蕉速度为 4 根/小时时:
第 1 堆:3 根,需要 1 小时 第 2 堆:6 根,需要 2 小时 第 3 堆:7 根,需要 2 小时 第 4 堆:11 根,需要 3 小时
总共需要:
1 + 2 + 2 + 3 = 8 小时
因此最小速度为 4。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.