题目解析
本题是“完全背包 - 装满背包的方案数问题”,其定义如下:
给定一个承重为W的背包,以及若干种物品,第 i 种物品的重量是w[i],每种物品无限个,问装满背包的方案数是多少?
关于“完全背包 - 装满背包的方案数问题”的状态转移方程为:
dp[j] += dp[j - w[i]]
dp[j] 的含义是 装满承重为 j 的背包的方案数。
状态转移方程意思是:如果装满承重为 j - w[i] 的背包的方案数为 dp[j - w[i]],那么在其每个具体方案中追加一个w[i]重量的物品,则每个具体方案就变成了装满承重 j 的背包的方案。
因此 dp[j] 可以复用 dp[j - w[i]] 的所有方案数。(复用的意思是+=)
更多关于“完全背包 - 装满背包的方案数问题”细节,可以参考下: