Loading

Min-Max 容斥

概念

Min-Max 容斥是一种用于转化 Min/Max 的技巧,通常用于对 Min/Max 进行计数 / 期望一类的题目中。

能用 Min-Max 容斥解决的题目数据范围一般较小。

假设现在有全集 \(U\),令 \(\min(S)\) 为集合 \(S\) 中元素的最小值,\(\max(S)\) 同理。

Min-Max 容斥可以在容易求得任意集合的 \(\min\) 时求出任意集合的 \(\max\),反之亦然。

因为和子集有关,所以能和高维前缀和 / FWT 一类的东西一起用。同时因为这个原因复杂度极高,或许可以用 dp 一类的东西快速维护子集信息。

结论

\(\max(S) = \sum\limits_{T \subseteq S} (-1)^{|T| + 1} \min(T)\)

证明:

首先假设 \(U\) 内元素各不相同,不影响结论正确性。

不妨对 \(U\) 降序排列,令 \(A_k\) 为此时 \(U\) 中的第 \(k\) 个元素。

\(\min(T) = A_k\),考虑可能的 \(T\)

  • \(k = 1\)

    此时 \(\min(T) = \max(T)\),贡献为 \((-1)^{1 + 1} \min(T) = \max(T)\)

  • \(k > 1\)

    因为 \(\min(T) = A_k\),所以此时 \(T\) 只能包含 \(A_1, ..., A_k\) 中的元素。同时 \(A_k\) 已经钦定在 \(T\) 中。

    剩余的元素有 \(2^{k - 1}\) 种选法,其中有 \(2^{k - 2}\) 种情况 \(|T|\) 为奇数,\(2^{k - 2}\) 种情况 \(|T|\) 为偶数,贡献抵消。

所以原式成立。

\(\min\)\(\max\) 的结论是对称的,即 \(\min(S) = \sum\limits_{T \subseteq S} (-1)^{|T| + 1} \max(T)\).

同时原式在期望意义下同样成立,即 \(E(\max(S)) = \sum\limits_{T \subseteq S} (-1)^{|T| + 1} E(\min(T))\)

扩展 Min-Max 容斥

考虑将 \(\max(S)\) 改为 \(\operatorname{kthmax}(S)\),也就是求第 \(k\) 大。

结论是 \(\operatorname{kthmax}(S) = \sum\limits_{T \subseteq S} (-1)^{|T| - k} {|T| - 1 \choose k - 1} \min(T)\).

证明:

还是考虑构造容斥形式的式子,不妨设出每个子集的贡献系数 \(F(|T|)\).

所以最终的结论应该形如:\(\operatorname{kthmax}(S) = \sum\limits_{T \subseteq S} F(|T|) \min(T)\).

假设某个元素 \(x\) 为第 \(p\) 大。

同理当且仅当比它小的 \(n - p\) 个元素时 \(\min(T) = x\),并且钦定 \(x\),前面有 \(p - 1\) 种元素可以任意选。

于是贡献系数为 \(\sum\limits_{i = 1}^{p - 1} {p - 1 \choose i} F(i + 1)\).

只需要令上式等价于 \([p = k]\) 就可以使结论成立,整理得到:

\(\sum\limits_{i = 1}^p {p \choose i} F(i + 1) = [p = k - 1]\).

\(G(p) = [p = k - 1]\),发现是二项式反演的形式,反演得到:

\(F(p + 1) = \sum\limits_{i = 1}^p (-1)^{p - i} {p \choose i} [i = k - 1] = (-1)^{p - k + 1} {p \choose k - 1}\).

整理得 \(F(p) = (-1)^{p - k} {p - 1 \choose k - 1}\).

于是原式成立。

代入 \(k = 1\) 时发现等价于普通 Min-Max 容斥的结论。

posted @ 2023-01-29 16:04  kymru  阅读(1680)  评论(2编辑  收藏  举报