DP_knapsack

动态规划法解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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/graphics/p/1509618.html