跳转至

DP 相关 trick

\(w\) 表物品价值,\(c\) 表物品体积,\(V\) 表背包容量。

背包

背包容量远大于物品体积

结论:取出性价比 \(\frac w c\) 最大的物品,设为 \((W,C)\),则其余物品最多选 \(C-1\) 个。

证明考虑如果存在一组物品体积和为 \(C\) 的倍数,则全部换成 \((W,C)\) 一定不劣。假设选了其余物品 \(K\) 个,体积分别为 \(w_1,w_2,\cdots,w_K\),做其 \(\bmod \; C\) 意义下前缀和 \(s_0,s_1,\cdots,s_K\),若 \(s\) 中有相同元素,则这一段可以全部用 \((W,C)\) 替换,故 \(K+1 \le C\),得证。

具体地,当 \(V \ge {\max c}^2\) 时可以用性价比最大的物品填充剩余部分,其他物品做 \(V = {\max c}^2\) 的 DP 即可。

更进一步地,我们可以做 \(\bmod \; C\) 意义下的同余背包,以得到更优复杂度。

例题1例题2