另外,看了看答案,真是妙啊,可见我的分析能力是多么的差。从答案中提取几点经验供大家参考:
1)答案的处理方式:在循环遍历是,我们不一定使用规模N进行循环,答案采用的是值域;也就是说通过分析得出了值域,如果值域并不是很大的数量级,则这
种方法往往能取得很妙的效果。类似的措施在课本中的"0-1背包问题"中也采用到了,它的算法就把背包容量c当做循环的次数来处理的,不过对于大的数量
级进行了优化从而得到了后面的优化算法。
2)数据结构的组织:答案中用一个二维数组num[0..L][0..3]来存储各种情况下的最大值、最小值、和等。节省了存储空间,在循环求解或赋值
时也比较方便。这种处理方式在"汽车加油问题"中也有应用(答案中的s数组),具体可以参考苏峰解那道题的算法。