例题
笔记
记号
-
n n n 为物品种类数;
-
m i m_i mi 为第 i i i 种物品的数量;
-
v i v_i vi 为第 i i i 种物品的单件价值;
-
w i w_i wi 为第 i i i 种物品的单件重量;
-
W W W 为背包容量。
朴素做法
设 f i , j f_{i,j} fi,j 表示考虑了前 i i i 个物品,背包容量为 j j j 时的最大价值。朴素的状态转移方程:
f i , j = max k = 0 b o u n d i , j { f i − 1 , j − k w i + k v i } , b o u n d i , j = min ( m i , ⌊ j w i ⌋ ) f_{i,j} = \max_{k=0}^{\mathrm{bound}_{i,j}} \{f_{i-1,j-kw_i} + kv_i\},\ \mathrm{bound}_{i,j} = \min\left(m_i, \left\lfloor\frac{j}{w_i}\right\rfloor\right) fi,j=k=0maxboundi,j{ fi−1,j−kwi+kvi}, boundi,j=min(mi,⌊wij⌋)
f i , ∗ f_{i,*} fi,∗