动态规划(五)背包型

特点:

  1. 用值作为DP 维度 (其他类型都是以位置坐标做维度)
  2. DP过程就是填写矩阵
  3. 可以滚动数组优化

背包:

  1. State:
    f[i][S] 前i 个物品,取出一些能否组成和为S
  2. Function:
    f[i][S] = f[i-1][S-a[i]] or f[i-1][S]
  3. Initialize :
    f[i][0] = True; f[0][1... target] = False
  4. Answer : f[n][m]
    检查左右的f[n][j]

时间复杂度O(n*S),滚动数组优化

例子

你可能感兴趣的:(动态规划(五)背包型)