约 10 分钟
背包不只求最大价值,也能求“凑出某容量的方案数”。把转移里的 max 换成累加即可:dp[j]+=dp[j-w[i]],初值 dp[0]=1(凑 0 有一种方案,即什么都不拿)。01 与完全背包只差内层循环方向。
max
dp[j]+=dp[j-w[i]]
dp[0]=1
求方案数时 dp[0] 应初始化为多少?
dp[0]
登录 后可看答案