万事不决用二分。本题的本质就是设计检验函数checkOK(int T),看看是否能支持N台电脑运行T时间。因为电池可以任意分配给各个电脑和各个时段,所以策略很简单,把所有的电池容量加起来,查看能否支撑T*N
即可。唯一需要注意的就是,任意一个电池都不能贡献超过时间T(因为我们只会让电脑运行时间T)。所以我们在算电池总容量的时候,取T为上限。
有了checkOK函数,那么我们不断猜测T。如果返回true,说明T可能是解,但也许还可以更大,那么我们就可以再往上猜;如果返回false,说明T太长了,就往下猜。本题一定有解,那么收敛解就是最终解。