如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。

USACO/milk

来自"NOCOW"

跳转到: 导航, 搜索

[编辑] 分析

简单的贪心算法

将所有的牛奶按价格升序排列(用快排),然后从低到高买入,直到买够m为止。

贪心的证明:

假设某次买了价格稍高的牛奶,可以得到最优解。那么把这次买的牛奶换成价格更低的牛奶,其它不变,那么所得的解较优。假设不成立。


利用桶排的思想可以把代码压缩到极限!参见代码三! 因其价格范围为[0..1000]可以用计数排序来做,就可以得到一个傻瓜代码(参见代码四)。

最佳解题方法:

  因为价格的范围在1..1000之内,所以,我们只要在读入数据的时候把相同价格的合并即可,

进行计算时,也只需要for i:=0 to 1000 do进行扫描如果有价格为i的牛奶就收购即可, 所以不需要排序。

[编辑] 参考代码

c
pascal


C++

[编辑] 引用

[1]

[2]

个人工具