解题思路:
DP动态规划的思路就是:
在有 K 件物品(每个物品都有自己的重量与价值,记为w[i]、v[i])、背包容量为 W 时可以获取的最大价值,对于这种情况可以记为 f(K,W),值为可以获取的最大价值
在这种情况下有两种方式可以求解:
第一种就是:不拿第 K 件物品,在 1-(K-1)的范围内挑选物品,此时问题变为:在 K-1 件物品、背包容量为 W 时可以获取的最大价值,记为f(K-1,W);
第二种就是:拿第 K 件物品,此时背包容量为 W-(第 K 件物品所占的重量),已获取的价值为(第 n 件物品所具有的的价值),此时的问题变为在 n-1 件物品、
背包容量为 W-w[K] 时可以获取的最大价值,记为 f(K-1,W-W[K])+ V[K];
原问题的解就是两种情况中价值较大的那一个;
注意事项:
1.可以列出一个矩阵来记录所有状态下的解,val【i】【j】,i 用来枚举出 n 件物品,j 用来枚举背包容量
2.要列出状态转移方程,该题的状态转移方程为:
3.以题中例子为例:
有三个物品,背包容量为5;