01背包 最基础的背包问题. 给你 n n n 个物品及容量为 m m m 的背包.每个物品有体积和价值,问最大的价值是多少. 转移方程显然 F j = m a x ( F j , F j − t [ i ] + w [ i ] ) F_j=max(F_j,F_{j-t[i]}+w[i]) Fj=max(Fj,Fj−t[i]+w[i]) 注意枚举顺序是倒序,因为01背包每个物品只能选一次,所以状态之间不能互相影响. 代码如下 完全背包 同01背包类似,不过物品可以多选. 转移方程类似. 注意枚举顺序是顺序,因为完全背包物品可以多选,所以状态之间需要建立影响. 代码如下 多重背包