动态规划法解0-1背包问题
问题描述:
有n个背包,重量依次为w1,w2, ... ,wn, 价值依次是v1,v2, ... ,vn, 现在有一个大背包,其容量是capacity,往其中装小背包,要求得到的总价值最大,如何装?
用value[i, w]表示有i个背包且总重量最大是w时的价值,那么当考虑第i个背包时,有两种情况
1. 将此背包装入大包,价值是 v[i] + value[i - 1, w- wi]
2. 此背包不装入打包,价值是 value[i - 1, w]
取两者中的最大值即可
代码如下:
Code
本文转自zdd博客园博客,原文链接:http://www.cnblogs.com/graphics/archive/2009/06/23/1509618.html,如需转载请自行联系原作者