完全背包
是01背包稍作变化而来,物品数量是无限的
01背包
每件物品只能用1次
二维dp数组01背包
动规5步曲
1 确定dp数组及下标的含义
dp[i][j] 表示从下标为0-i的物品里任意取,放进容量为j的背包,价值总和最大是多少
2 确定递推公式
有两个方向推出来dp[i][j]
不放物品i: dp[i][j] = dp[i-1][j]
放物品i: dp[i][j] = dp[i-1][j-weight[i]]+value[i]
分割等和子集
01背包的运用
是01背包稍作变化而来,物品数量是无限的
每件物品只能用1次
动规5步曲
1 确定dp数组及下标的含义
dp[i][j] 表示从下标为0-i的物品里任意取,放进容量为j的背包,价值总和最大是多少
2 确定递推公式
有两个方向推出来dp[i][j]
不放物品i: dp[i][j] = dp[i-1][j]
放物品i: dp[i][j] = dp[i-1][j-weight[i]]+value[i]
01背包的运用