题解 P1223 【排队接水】
简单数学证明
首先我们要排的是所有的元素,但是为什么是从小到大呢???
排队总是象征要排序,每个元素在此序列下都要满足条件,也就是从中拿出两个相邻元素同样满足条件:
于是设:
ai 和 bi且ai<bi
那么针对这两个元素:就有两种排列情况:
1.ai排在bi前面那么有总时间:t1=ai+ai+bi.
2.bi排在ai前面那么有总时间:t2=bi+bi+ai.
于是由ai<bi得出 t1<t2—》变一下式子—》ai+ai+bi<bi+bi+ai;
再化简不等式得出ai<bi
于是得出结论:当ai在bi前面时,时间为最小值。
于是反推回总体,两两相较,那么越小的应该越排在前面,以至于总时间越小
本题真的水,AC代码太多了,提交记录中还有同意了代码公开计划的牛犇在,我觉得没必要贴出代码正如百科中的第一条:题解可以选择贴代码或者不贴。
故:麻烦您在审一次了,这是一次用数学分析的思维分享。我希望能够让大家知道,不是为了单纯炫耀。也许在以后大家的解题思路方向多了一点,能更好的拓展思维。