动态规划——背包问题(一)
背包问题的基本描述:
有 n n n件物品,第 i i i件物品的重量为 w [ i ] w[i] w[i],价值为 p [ i ] p[i] p[i],将这些物品放入一个大小为 V V V的背包,要求使得物品的总价值 P P P尽量大。
则得到
P = ∑ p [ i ] P = \sum p[i] P=∑p[i]
V ≥ ∑ w [ i ] V \geq \sum w[i] V≥∑w[i]
当要求物品恰能放入背包时有
∑ w [ i ] = V \sum w[i] = V ∑w[i]=V
背包问题可以分为以下几类,按照复杂程度排序为
- 01背包问题
- 多重背包问题
- 完全背包问题
01背包问题
01背包问题的意思是,每种物品只有一次被选择的机会。
这里直接给出状态转移方程:
P i j = m a x { P i − 1 j , P i − 1 j − w i + p i } ( j ≥ w i ) P_i^j = max\{P_{i-1}^j, P_{i-1}^{j-w_i}+p_i\}(j\geq w_i) Pij=max{ Pi−1