noi.openjudge 2469:电池的寿命 证明

noi.openjudge 2469:电池的寿命 贪心(?)

原未解之谜。答案是,如果最大电池超过sum/2,那么取除最大以外的所有之和;如果小于等于sum/2,那么取sum/2.

第一种情况是显然的,而对于第二种情况,我们采用数学归纳法证明。对于三个电池,这种关系成立,那么假设对k节电池的情况成立,下面考虑k+1阶的情况。我们在减少电池节数的同时保持原有的性质,一种方法就是,把最小的那节和最大的那节同时使用。使用过程中,最大节减少一份,sum减少两份,最大节仍然小于等于sum/2。

如果在最小节耗尽时,最大节仍然最大,那么阶数降低且性质保持,根据归纳假设,成立;如果最大节在最小节没耗尽的某时刻和次小节会合,那么同步使用这两个最大的电池来消耗这个小电池。同样地,如果还和其他电池重合,那么就一起“并联”成为共同最大节。一定有一个时刻,最小节可以耗尽。耗尽时,由于最大节有复数个,所以一定还满足原来的性质。

 

其实还可以考虑把所有非最大节和最大节一同使用,将最大节的一份使用时间平摊到其他各节上。

posted @ 2021-02-03 21:29  难以理解  阅读(236)  评论(0)    收藏  举报