三卷积背包奇偶凸性

问题是每个物品有 \(0,1,2\) 三种重量,对应 \(w_0,w_1,w_2\) 三种价值,有 \(n(2\times 10^5)\) 个物品,求每个重量下的最大价值。

双卷积背包显然是上凸的,可以直接把物品权值排序即可。关于三卷积就没有这么好的性质,但是我们仍可以证明,它的奇数重量和偶数重量分别是凸的,所以在代码上,我们只需要序列分治,然后凸包闵可夫斯基和合并即可。复杂度 \(O(2^2 n\log n)\)

关于三卷积背包奇偶凸性,我们考虑使用对比法证明。

我们考虑 \(x\)\(x+4\) 的最优解,我们证明 \(x+2\) 的最优解一定大于等于 \(x\)\(x+4\) 的价值的平均值。

我们来对比一下 \(x\)\(x+4\),我们对于每一个物品(有 \(3\) 种选择),记作 \(0,1,2\),那么每个物品在两个方案的差分中,一定存在一个 \([-2,2]\) 的数,表示 \(x+4\) 的选择中,相比 \(x\) 多拿了什么。

我们单独把这个 \([-2,2]\) 的序列拿出来,去除 \(0\),这个序列的和为 \(4\)(因为是 \(x\to x+4\)),我们只要证明这个序列可以被分成两个部分,和都为 \(2\) 即可。这样,这两个部分必然有一个价值更大,\(\max(a,b)\ge \frac{a+b}{2}\),于是我们就证明了那个调整法。
(实际上,这里我们进行了一个组合意义上的缩放,我们每个物品只允许取 \(x\) 方案中的状态,或者 \(x+4\) 方案中的状态,如果有中间状态,我们不允许取)

所以这个序列中没有 \(2\)(否则直接做完了);于是这个序列中至少有 \(4\)\(1\),任取两个即可。

如果对于 \(k\) 来说,\(f(k)\)\(k\) 的最小保凸模数,那么我们至少可以再 \(f(k)kn\log n\) 的时间解决这个问题。至于 \(f(k)kn\),我不清楚。

https://qoj.ac/problem/9609 这是动态三卷积,揭示了三卷积本质上还是弱的。

应该还有一个三卷积的 PA(可能)的题的,但是找不到了。

posted @ 2025-03-11 08:14  皮皮的橙子树  阅读(182)  评论(1)    收藏  举报