题目解析
本题要求的 T 即为每天最多要花费的做题时间,比如T=5,即表示每天最多有5个小时做题。另外,在每天花费T时间做题的情况下,要在m天中做完所有题目。
现在这种可能解T有多个,我们要找到这些可能解中最小的T。
这是一个典型的最大最小问题,我们可以用二分法解题。
二分法用于求解可能解T,首先需要确定T的两个边界范围(初始的二分范围)。
- 由于题目说,每天都能申请看一次答案,即免去一道题的做题时间,因此当题目数量少于m天数时,即可能造成每天分得不足一题,这样的话,每天都申请看答案,则T=0。
- 如果我们在一天内写完所有题目,那么要花费的时间是sum(time),另外,我们可以在这一天申请看一题答案,免去一题的做题时间,此时最优策略是,看耗时最多的那题,即一天最多耗时 T = sum(time) - max(time)
因此,T的取值范围是 [0, sum(time) - max(time)]
我们通过二分法,取中间值作为可能解 t,然后进行验证,该 t 是否可以保证在 m 天内完成 所有题目:
- 如果 t 可以在 m 天完成所有题目,则 t 就是一个可能解,但不一定是最优解,我们需要继续尝试更小的 t ,即 将 T 的取值范围的右边界减少到 t - 1 位置,然后继续二分
- 如果 t 不能再 m 天完成所有题目,则 t 取小了,我们应该尝试更大的 t , 即 将 T 的取值范围的左边界增加到 t + 1,然后继续二分
这样最终我们就能求得最小的T。
但是

已下架不支持订阅
183






