1. 动态规划其实就是填表格
  2. 明确表格代表的意思
    1. dp[j]dp[j] 在重量为j的情况下的最大价值
    2. dp[j]dp[j] 能不能凑出重量为 jj
  3. 确定状态转移方程:dp[j]=dp[jnum[i]]dp[j]=dp[j-num[i]]
  4. 表格初始化
  5. 确定遍历顺序
    1. 先遍历物品后遍历重量——01背包滚动数组
    2. 倒叙遍历和倒叙遍历

【01背包】

题目详情 - 实现01背包 - 战码少年-战码青少年编程(专业信息学奥赛编程训练) (qucode.cn)

题目详情 - 分割等和子集 - 战码少年-战码青少年编程(专业信息学奥赛编程训练) (qucode.cn)

基本题型

  1. 求背包容量能放物品的最大价值
  2. 求能不能刚好凑出背包容量为 jj
  3. 求凑出背包容量为 jj 的方案数

【完全背包】

题目详情 - 实现完全背包 - 战码少年-战码青少年编程(专业信息学奥赛编程训练) (qucode.cn)

题目详情 - 练86.3 货币系统 - 战码少年-战码青少年编程(专业信息学奥赛编程训练) (qucode.cn)