01背包问题

二维数组V(i,j):前 i 个物品,背包容量 j,所能取得的最大价值

1) j<w(i)      V(i,j)=V(i-1,j)  //如果当前容量小于第i个物品的重量,则不会装入此物品,故而最大价值仍然为V(i-1,j)

2) j>=w(i)     V(i,j)=max{ V(i-1,j)V(i-1,j-w(i))+v(i) }//表示装入物品,但同时需要预留w[i]空间,才可装入当前物品,但是装入不一定价值最大,所以需要比较

详细参考:https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html

posted @ 2019-10-27 21:22  suwenyuan  阅读(109)  评论(0编辑  收藏  举报