min-max 容斥(最值反演)学习笔记

min-max 容斥,又名最值反演(我其实更喜欢后面这个名字),是一种常用的反演思想。

引入

在皇后游戏一题中,我们曾经证明过 \(\max(a,b)-a-b=-\min(a,b)\)

我们尝试推广亿下下这个式子,就会得到两条反演公式:

\[\max(S)=\sum_{T\subseteq S}(-1)^{|T|-1}\min(T) \]

\[\min(S)=\sum_{T\subseteq S}(-1)^{|T|-1}\max(T) \]

这就是最值反演公式了。

证明

假如我们将集合 \(S\) 升序排序后的数组称为 \(a\),那么容易发现有:

\[\sum_{T\subseteq S}(-1)^{|T|-1}\min(T)=\sum_{i=1}^na_i\sum_{j=0}^{n-i}(-1)^{(j+1)-1}\binom{n-i}j \]

\[=\sum_{i=1}^na_i0^{n-i}=a_n=\max(S) \]

假如我们将集合 \(S\) 降序排序后的数组称为 \(b\),那么容易发现有:

\[\sum_{T\subseteq S}(-1)^{|T|-1}\max(T)=\sum_{i=1}^nb_i\sum_{j=0}^{n-i}(-1)^{(j+1)-1}\binom{n-i}j \]

\[=\sum_{i=1}^nb_i0^{n-i}=b_n=\min(S) \]

由此最值反演公式得证。

拓展

我们再尝试推广亿下下最值反演公式,得到:

\[\max(S)_k=\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T) \]

\[\min(S)_k=\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\max(T) \]

其中 \(\max(S)_k,\min(S)_k\) 表示第 \(k\) 大值和第 \(k\) 小值。

同样考虑将集合 \(S\) 升序、降序排序,得到 \(a,b\),则有:

\[\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T)=\sum_{i=1}^na_i\sum_{j=k-1}^{n-1}(-1)^{j+k-1}\binom j{k-1}\binom{n-i}j \]

\[=(-1)^{k-1}\sum_{i=1}^na_i\sum_{j=k-1}^{n-1}(-1)^j\frac{(n-i)!}{(k-1)!(j-k+1)!(n-i-j)!} \]

\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^na_i(n-i)!\sum_{j=k-1}^{n-1}\frac{(-1)^j}{(n-i-k+1)!}\frac{(n-i-k+1)!}{(j-k+1)!(n-i-j)!} \]

\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}\sum_{j=k-1}^{n-1}(-1)^j\binom{n-i-k+1}{j-k+1} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}\sum_{j=0}^{n-i-k+1}(-1)^j\binom{n-i-k+1}{j} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}0^{n-i-k+1} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\frac{a_{n-k+1}(n-(n-k+1))!}{(n-(n-k+1)-k+1)!} \]

\[=a_{n-k+1}=\max(S)_k \]

\[\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\max(T)=\sum_{i=1}^nb_i\sum_{j=k-1}^{n-1}(-1)^{j+k-1}\binom j{k-1}\binom{n-i}j \]

\[=(-1)^{k-1}\sum_{i=1}^nb_i\sum_{j=k-1}^{n-1}(-1)^j\frac{(n-i)!}{(k-1)!(j-k+1)!(n-i-j)!} \]

\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^nb_i(n-i)!\sum_{j=k-1}^{n-1}\frac{(-1)^j}{(n-i-k+1)!}\frac{(n-i-k+1)!}{(j-k+1)!(n-i-j)!} \]

\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}\sum_{j=k-1}^{n-1}(-1)^j\binom{n-i-k+1}{j-k+1} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}\sum_{j=0}^{n-i-k+1}(-1)^j\binom{n-i-k+1}{j} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}0^{n-i-k+1} \]

\[=\frac{(-1)^{2k-2}}{(k-1)!}\frac{b_{n-k+1}(n-(n-k+1))!}{(n-(n-k+1)-k+1)!} \]

\[=b_{n-k+1}=\min(S)_k \]

变形

最值反演最经典的应用莫过于期望了。

\(S\) 集合表示所有元素的出现时间,那么 \(\max(S)\) 就相当于出现最晚的元素出现的时间。由于 \(E(i)E(j)=E(ij),E(i)+E(j)=E(i+j)\) 等期望的优良性质,所以容易证明:

\[E(\max(S))=\sum_{T\subseteq S}(-1)^{|T|-1}E(\min(T)) \]

这个公式在许多不易求出最长期望时间的问题中有着拔群的效果。

另外一个相当经典的应用是 \(\operatorname{lcm}\)\(\gcd\) 之间的关系,具体证明可以看这个题解的引理四,这里不再做详细证明。

posted @   长安一片月_22  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示