Min-Max 容斥

概述

Min-Max 容斥可以将序列最大值、最小值联系起来。它有两个公式。

我们令 min(S)\min(S) 表示集合 SS 的最小值,max(S)\max(S) 表示集合 SS 的最大值,S|S| 表示集合 SS 中元素的数量,则:

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

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

证明

我们这里证明第一个公式。第二个公式的证明方法与它类似。

对于某一个数字 xx,我们求当 xx 作为子集最大值时,系数之和是多少。

假设有 kk 个数字 <x<x。如果某个子集的最大值是 xx,则这 kk 个数字可选可不选, xx 必须选,其他数字必须不选。我们枚举这 kk 个数字中被选的数量 ll,此时 T=l+1|T|=l+1,所以 xx 的系数之和就是

l=0k(kl)(1)k\sum_{l=0}^k\binom{k}{l}(-1)^k

由二项式定理得

l=0k(kl)(1)k=l=0k(kl)1ki(1)k=(11)k=0k\sum_{l=0}^k\binom{k}{l}(-1)^k=\sum_{l=0}^k\binom{k}{l}1^{k-i}(-1)^k=(1-1)^k=0^k

所以,当 k0k\neq 0(即 xx 不是最大值时),系数为 00。当 k=0k=0(即 xx 是最大值时),系数为 11。所以最终的结果就是 SS 的最大值。

在期望中的应用

假设 SS 是一个随机序列,则序列期望最大值、期望最小值的关系,也可以用 Min-Max 容斥来表示。

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

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

Luogu P3175 按位或

题目链接

假设我们有长度为 nn 的序列 S0Sn1S_0\sim S_{n-1},其中 SiS_i 表示:数字的第 ii 位经过了 SiS_i 次操作后才变成了 11。那么题目求的是 SS 的期望最大值,即 E(max(S))E(\max(S))

我们考虑 Min-Max 容斥。对于每个子集 TT,我们求出它的期望最小值 E(min(T))E(\min(T)),即期望下经过多少次操作,这个子集中才有数字变成了 11

假设 P(T)P(T) 表示随机选一个数字,这个数字与 TT 有交集的概率。即 P(T)=iTpiP(T)=\sum_{i\cap T \neq \varnothing} p_i。那么 E(min(T))=1P(T)E(\min(T))=\frac{1}{P(T)}

我们考虑如何求 P(T)P(T)。正难则反,我们用 11 减去不符合条件的和:

P(T)=1iT=pi=1i(UT)piP(T)=1-\sum_{i\cap T = \varnothing} p_i=1-\sum_{i \subseteq(U-T)} p_i

减号后面的东西可以用 FWT 求。

至此,对于每个子集 TT,我们都求出了 E(min(T))E(\min(T))。我们套用 Min-Max 容斥的公式,就可以求出 E(max(S))E(\max(S))

AGC038E Gachapon

题目链接

我们假设有长度为 nn 的序列 SS,表示第 ii 个数字经过 SiS_i 次操作后成为合法元素。那么答案就是 E(max(S))E(\max(S))

我们考虑一个子集 TTE(min(T))E(\min(T))。它的含义是:子集内存在合法元素的期望次数。我们设所有 aia_i 的和为 SaS_a,子集 TTaia_i 的和为 STS_T

我们假设每一次取数字,都可以取到 TT 集合内的数字。我们设在这种条件下,子集内存在合法元素的期望次数为 EE

我们用 P(t=x)P(t=x) 表示子集 TT 中有合法元素时,操作次数恰好等于 xx 的概率;用 P(tx)P(t\ge x) 表示子集 TT 中有合法元素时,操作次数 x\ge x 的概率。那么

E=k=1k×P(t=i)=k=1j=kP(t=j)=k=1P(tk)E=\sum_{k=1}^\infty k\times P(t=i)=\sum_{k=1}^\infty\sum_{j=k}^\infty P(t=j)=\sum_{k=1}^\infty P(t\ge k)

我们思考 P(tx)P(t\ge x) 的含义。它表示进行 x1x-1 次操作后,TT 中没有合法元素的概率。那么上述式子的值就是,进行 00 次操作后没有合法元素的概率,加上进行 11 次后的概率,进行上第 22 次后的概率,一直加下去。

我们求进行 kk 次操作后没有合法元素的概率。枚举每个数字被抽到的次数 cic_i,满足 iTci=k,ci<bi\sum_{i\in T}c_i=k,c_i<b_i。概率可以用(按顺序依次选取的概率 ×\times 重排后可以得到的不同方案数)求出:

(iT(aiST)ci)×(k!iTci!)=k!iTaiciSTcici!=k!STkiTaicici!(\prod_{i\in T} (\frac{a_i}{S_T})^{c_i})\times(\frac{k!}{\prod_{i \in T}c_i!})=k!\prod_{i\in T}\frac{a_i^{c_i}}{S_T^{c_i}c_i!}=\frac{k!}{S_T^k}\prod_{i\in T}\frac{a_i^{c_i}}{c_i!}

此时 P(tk)P(t\ge k) 就是 cic_i 所有不同的取法的概率总和。所以

E=k=1P(tk)=kci<bi,iTci=kk!STkiTaicici!=kk!STkci<bi,iTci=k  iTaicici!\begin{aligned} E&=\sum_{k=1}^\infty P(t\ge k)\\ &=\sum_k\sum_{c_i<b_i,\sum_{i\in T}c_i=k} \frac{k!}{S_T^k}\prod_{i\in T}\frac{a_i^{c_i}}{c_i!}\\ &=\sum_k\frac{k!}{S_T^k}\sum_{c_i<b_i,\sum_{i\in T}c_i=k}~~ \prod_{i\in T}\frac{a_i^{c_i}}{c_i!} \end{aligned}

不要忘记 EE 是只能选 TT 中的数字时的期望。如果所有数字都可以选,那么期望下每取 SaST\frac{S_a}{S_T} 个数字,可以取到一个 TT 中的数字。所以:

E(min(T))=SaST×E=SaSTkk!STkci<bi,iTci=k  iTaicici!=Sakk!STk+1ci<bi,iTci=k  iTaicici!\begin{aligned} E(\min(T)) &=\frac{S_a}{S_T}\times E\\ &=\frac{S_a}{S_T} \sum_k\frac{k!}{S_T^k}\sum_{c_i<b_i,\sum_{i\in T}c_i=k}~~ \prod_{i\in T}\frac{a_i^{c_i}}{c_i!}\\ &=S_a \sum_k \frac{k!}{S_T^{k+1}}\sum_{c_i<b_i,\sum_{i\in T}c_i=k} ~~\prod_{i\in T}\frac{a_i^{c_i}}{c_i!}\\ \end{aligned}

我们根据 Min-Max 容斥的公式可得:

E(max(S))=T{1,2,,n}(1)T+1E(min(T))=T{1,2,,n}(1)T+1Sakk!STk+1ci<bi,iTci=k  iTaicici!=T{1,2,,n}Sakk!STk+1ci<bi,iTci=k  iTaicici!\begin{aligned} E(\max(S))&=\sum_{T\subseteq \{1,2,\dots,n\}}(-1)^{|T|+1}E(\min(T)) \\ &=\sum_{T\subseteq \{1,2,\dots,n\}}(-1)^{|T|+1}S_a \sum_k \frac{k!}{S_T^{k+1}}\sum_{c_i<b_i,\sum_{i\in T}c_i=k} ~~\prod_{i\in T}\frac{a_i^{c_i}}{c_i!}\\ &=\sum_{T\subseteq \{1,2,\dots,n\}}-S_a \sum_k \frac{k!}{S_T^{k+1}}\sum_{c_i<b_i,\sum_{i\in T}c_i=k} ~~\prod_{i\in T}-\frac{a_i^{c_i}}{c_i!}\\ \end{aligned}

我们考虑式子右边的 ci<bi,iTci=kiT(1)aicici!\sum_{c_i<b_i,\sum_{i\in T}c_i=k} \prod_{i\in T}(-1)\frac{a_i^{c_i}}{c_i!} 怎么求。设 fi,j,kf_{i,j,k} 表示只从前 ii 项里选,ST=jS_T=jiTci=k\sum_{i\in T}c_i=k 的这个式子的值。转移分两种情况。

  • ii 不选

fi,j,kfi1,j,kf_{i,j,k}\leftarrow f_{i-1,j,k}

  • ii 选 枚举被抽中的次数 ci[0,bi]c_i \in [0,b_i]

fi,j,kfi1,jai,kci×aicici!f_{i,j,k}\leftarrow -f_{i-1,j-a_i,k-c_i}\times \frac{a_i^{c_i}}{c_i!}

对所有 j,kj, k 计算 Sak!jk+1fn,j,k-S_a \frac{k!}{j^{k+1}} f_{n,j,k} 并求和,就是最终答案。