值域大体积小,所以肯定是优先选性价比高的。
但是恰好的条件很难搞,记 m m m 为 max w i \max w_i maxwi 的。
然后可以想象最后肯定是拿走一部分,再加入一部分。
然后在任何都可以令 W ∈ [ W − m , W + m ] W\in[W-m,W+m] W∈[W−m,W+m]
多重背包会难搞一点,其实本质可以维护一个反悔贪心,重量和价值都为负即可
多重背包(二进制分组实现):
值域大体积小,所以肯定是优先选性价比高的。
但是恰好的条件很难搞,记 m m m 为 max w i \max w_i maxwi 的。
然后可以想象最后肯定是拿走一部分,再加入一部分。
然后在任何都可以令 W ∈ [ W − m , W + m ] W\in[W-m,W+m] W∈[W−m,W+m]
多重背包会难搞一点,其实本质可以维护一个反悔贪心,重量和价值都为负即可
多重背包(二进制分组实现):