容斥与反演

容斥与反演

容斥

容斥原理

用于不重不漏地【表达/转化】某集合

广义容斥:合法方案数 = 总方案数 - 不合法方案数

狭义容斥:

\[\left|\bigcup_{i = 1}^{n}S_i\right|=\sum_{x = 1}^{n}(-1)^{x - 1}\sum_{i_1<i_2<\cdots <i_x}\left|\bigcap_{j = 1}^{x}S_{i_j}\right| \]

我们来证明一下容斥系数为什么是 \((-1)^{x - 1}\)

一个被n个集合包含的元素,那么它的容斥系数之和为:

\[\sum_{i = 1}^{n}(-1)^{i - 1}\binom{n}{i}=\binom{n}{0}-\sum_{i = 0}^{n}(-1)^{i}\binom{n}{i}=1 \]

Min-Max容斥

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

其中 max(S) 表示集合 S 中所有元素的最大值。

证明:对于第k+1大的元素,有k个比它小的集合。以它为最小值的,大小为 i 的集合有 \(\binom k{i-1}\) 个,所以它的统计次数为:

\[\sum_{i = 1}^{k + 1}\binom{k}{i - 1}(-1)^{i - 1}=\sum_{i = 0}^{k}\binom{k}{i}(-1)^{i}=[k = 0] \]

推广到求第 k 大的元素:

\[\mathrm{kthmax}(S)=\sum_{T\subseteq S}(-1)^{|T|-k}\binom{|T|-1}{k - 1}\min(T)\\ \mathrm{kthmin}(S)=\sum_{T\subseteq S}(-1)^{|T|-k}\binom{|T|-1}{k - 1}\max(T) \]

其中 kthmax(S) 表示集合 S 中所有元素的第 k 大值。证明与上面的类似。

min-max容斥还有很好的期望意义,这是min-max容斥得以广泛使用的重要原因:

\[E(\max(S))=\sum_{T\subseteq S}(-1)^{|T|-1}E(\min(T))\\ E(\min(S))=\sum_{T\subseteq S}(-1)^{|T|-1}E(\max(T))\\ E(\mathrm{kthmax}(S))=\sum_{T\subseteq S}(-1)^{|T|-k}\binom{|T|-1}{k - 1}E(\min(T))\\ E(\mathrm{kthmin}(S))=\sum_{T\subseteq S}(-1)^{|T|-k}\binom{|T|-1}{k - 1}E(\max(T)) \]

反演

反演的本质就是容斥。

我们从一下几种常见的反演来讲:

二项式反演

\[f(n)=\sum_{i = 0}^{n}\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i = 0}^{n}(-1)^{n - i}\binom{n}{i}f(i)\\ f(n)=\sum_{i = n}^{m}\binom{i}{n}g(i)\Leftrightarrow g(n)=\sum_{i = n}^{m}(-1)^{i - n}\binom{i}{n}f(i) \]

因为第二个式子可以由第一个式子推出,所以我们先证明第一个。

组合意义证明

\(f_n\)表示恰好使用n个不同元素形成特定结构的方案数,\(g_n\)表示从n个不同元素中选出若干个元素形成特定结构的总方案数。

于是有:\(g_n = \sum^n_{i=0}\binom{n}{i}f_i\)

使用容斥原理,可以得到:\(f_n = \sum^n_{i=0}(-1)^{n-i}\binom nmg_i\)

这个因该很好感性理解,下面是严谨证明$\downarrow $

代数证明:(某知名竞赛教练在白板上的珍贵推导过程)



例:例题

我们用矩阵描述这一过程:

\[\underbrace{ \begin{pmatrix} \binom{0}{0} & 0 & \cdots & 0 \\ \binom{1}{0} & \binom{1}{1} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ \binom{n}{0} & \binom{n}{1} & \cdots & \binom{n}{n} \end{pmatrix} }_{\boldsymbol{A}} \begin{pmatrix} f_0 \\ f_1 \\ \vdots \\ f_n \end{pmatrix} = \begin{pmatrix} g_0 \\ g_1 \\ \vdots \\ g_n \end{pmatrix} \Leftrightarrow \]

\[\underbrace{ \begin{pmatrix} \binom{0}{0} & 0 & \cdots & 0 \\ -\binom{1}{0} & \binom{1}{1} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ (-1)^n\binom{n}{0} & (-1)^{n - 1}\binom{n}{1} & \cdots & \binom{n}{n} \end{pmatrix} }_{\boldsymbol{B}} \begin{pmatrix} g_0 \\ g_1 \\ \vdots \\ g_n \end{pmatrix}= \begin{pmatrix} f_0 \\ f_1 \\ \vdots \\ f_n \end{pmatrix} \]

刚才给出的证明等价于证明A·B=I。

将A和B转置(延对角线翻着)之后得到的矩阵仍然是互逆的.

所以 \(g_m = \sum_{i = m}^{n} \binom{i}{m} f_i \Longleftrightarrow f_m = \sum_{i = m}^{n} (-1)^{i - m} \binom{i}{m} g_i\)

子集反演

\[f(S)=\sum_{T\subseteq S}g(T)\Longleftrightarrow g(S)=\sum_{T\subseteq S}(-1)^{|S|-|T|}f(T)\\ f(S)=\sum_{S\subseteq T}g(T)\Longleftrightarrow g(S)=\sum_{S\subseteq T}(-1)^{|T|-|S|}f(T) \]

第二个式子由第一个式子取补得到。

而对于第一个式子的证明,我们选择讲左式代入右式:

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

改为枚举集合T的大小:

\[\begin{align*} \text{上式}&=\sum_{X\subseteq S}g(X)\sum_{i = |X|}^{|S|}\binom{|S|-|X|}{i - |X|}(-1)^{|S|-i}\\ &=\sum_{X\subseteq S}g(X)\sum_{i = 0}^{|S|-|X|}\binom{|S|-|X|}{i}(-1)^{|S|-|X|-i}\\ &=\sum_{X\subseteq S}g(X)[|X| = |S|]=g(S) \\\Box \end{align*} \]

斯特林反转

\[f(n)=\sum_{k = 0}^{n}\left\{\begin{array}{l}n\\k\end{array}\right\}g(k)\Longleftrightarrow g(n)=\sum_{k = 0}^{n}(-1)^{n - k}\left[\begin{array}{l}n\\k\end{array}\right]f(k)\\ f(m)=\sum_{k = m}^{n}\left\{\begin{array}{l}k\\m\end{array}\right\}g(k)\Longleftrightarrow g(m)=\sum_{k = m}^{n}(-1)^{k - m}\left[\begin{array}{l}k\\m\end{array}\right]f(k) \]

带入用反转公式可以验证。

单位根反演

(应该只在FFT的证明中有用到)

这里用 \(w_i\) 代表 \(w_i^n\)

\[\sum\limits_{i=0}^{n-1}{w_i^k}=n[n\mid k] \]

证明:

\[\sum\limits_{i=0}^{n-1}{w_i^k} = \sum\limits_{i=0}^{n-1}{w_k^i} \]

该式为等比数列,所以:

\[\sum\limits_{i=0}^{n-1}{w_k^i} = \begin{cases} &n \text{ if } w_k = 1 \\ &{1 - w_k^n \over 1 - w_k} \text{ if } w_k != 1 \end{cases} \]

观察到,\(w_k^n = w_{nk} = 1\),并且 \(w_k = 1 \Leftrightarrow n|k\)

所以上式化简为:\(\sum\limits_{i=0}^{n-1}{w_i^k}=n[n\mid k]\)

莫比乌斯反演

\[g(n)=\sum_{i|n}f(i)\Longleftrightarrow f(n)=\sum_{i|n}\mu\left(\frac{n}{i}\right)g(i) \]

不过这玩意一般不是这么用的,详见这里

posted @ 2025-01-30 22:49  花子の水晶植轮daisuki  阅读(29)  评论(1)    收藏  举报
https://blog-static.cnblogs.com/files/zouwangblog/mouse-click.js