基本容斥小记

参考了 这篇


基本模型与技巧

前置知识只有两个, 一个是基本的计数技巧, 在这里略去不提, 另一个是:\(\sum\limits_{i=0}^n (-1)^i \dbinom{n}{i}=[n=0]\), 这个证明的话就看一下杨辉三角一行里上一行成分的构成(依据 \(\binom nm = \binom{n-1}{m}+\binom{n-1}{m-1}\)), 会发现不同列分奇偶加起来是一样的。

并集转交集

本蒻记忆中第一个接触的容斥就是它了, 著名的奇加偶减, 一般使用时设 \(S_i\) 表示满足条件 \(i\) 的集合。

\[|\bigcup_{i=1}^n S_i| = \sum_{i=1}^n (-1)^{i+1} \sum_{1\le a_1<\cdots<a_i\le n}|\bigcap_{j=1}^i S_{a_i}| \tag{1} \]

证明:对于一个元素, 假设其出现在 \(S_1,S_2\cdots,S_m\), 其对右式的贡献为:

\[cnt = |\{S_i\}| - |\{S_i\cap S_j\mid 1\le i<j\le m \}| + \cdots \\ = \sum_{i=1}^m (-1)^{i+1} \binom{m}{i} \\ = \binom{m}{0}-\sum_{i=0}^m (-1)^i \binom{m}{i} \\ = 1 -[m=0] \\ =1 \]

至于最后一步,是因为 \(m\ge 1\)

这个著名的式子 \((1)\) 还可以写成如下形式,更为简洁:

\[|\bigcup_{i=1}^n S_i| = \sum_{I\subseteq [n],I\neq \varnothing} (-1)^{|I|+1} |\bigcap_{i\in I}S_i| \]

交集转并集/取反的并集/取反的交集

依然是奇加偶减。

\[|\bigcap_{i=1}^n S_i| = \sum_{i=1}^n (-1)^{i+1}\sum_{1\le a_1<\cdots<a_i\le n}|\bigcup_{j=1}^i S_{a_i}| \tag{2} \]

证明依旧, 对于一个出现在所有集合里的元素, 其对右式的贡献为:

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

对于一个出现在 \(S_1,\cdots,S_m\) 里的元素(\(m<n\)),其对右式的贡献为:

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

也就是把这类元素先当作出现在所有集合里, 再减去那些本不应有的贡献。

同样地, 式子 \((2)\) 可以写成:

\[|\bigcap_{i=1}^n S_i| = \sum_{I\subseteq [n],I\neq \varnothing} (-1)^{|I|+1} |\bigcup_{i\in I}S_i| \]

将交集转化成并集的另一个式子是:

\[|\bigcap_{i=1}^nS_i|=|U|-|\bigcup_{i=1}^n\overline{S_i}| \tag{3} \]

证明:组合意义,不是全满足的,就必定不满足至少一项。

这个通常结合式子 \((1)\) 进行应用, 即:

\[|\bigcup_{i=1}^n\overline{S_i}| = \sum_{I\subseteq [n],I\neq \varnothing} (-1)^{|I|+1} |\bigcap_{i\in I}\overline{S_i}| \\ |\bigcap_{i=1}^nS_i| = |U|+\sum_{I\subseteq [n],I\neq \varnothing} (-1)^{|I|} |\bigcap_{i\in I}\overline{S_i}| \]

若是认同 \(I = \varnothing\) 的时候后面那个交集的大小就是全集, 那么这个式子可以直接写成这样:

\[|\bigcap_{i=1}^nS_i| = \sum_{I\subseteq [n]} (-1)^{|I|} |\bigcap_{i\in I}\overline{S_i}| \tag{4} \]


基本例题

[COCI2009-2010#6] XOR

设第 \(i\) 个三角形为 \(S_i\), 答案就是 \(|Xor_{i=1}^n S_i|\)

我是没怎么想到容斥, 但是这个可以用容斥做,不过倒是可以大概地猜到用容斥做的话大概率转换成交集。

那么枚举交集:\(\sum\limits_{I\subseteq [n],I\neq \varnothing}nanachi* |\bigcap\limits_{i\in I} S_i|\) , 那么就要有一个系数 \(nanachi\), 那么 \(nanachi\) 的性别是什么呢?

显然对于一个属于 \(x\) 个集合的元素的贡献是 \([2\nmid x]\), 设 \(id(x)\)\(x\) 个集合的容斥系数,那么由于使用的是交集, 所以这个元素的贡献实际上是:

\[\sum_{i=1}^x\binom xi id(i) = [2\nmid x] \]

若是令 \(id(0)=0\),那么利用二项式反演可以得到:

\[\sum_{i=0}^x\binom xi id(i) = [2\nmid x] \\ id(x)=\sum_{i=0}^x (-1)^{x-i}\binom xi [2\nmid i]=\sum_{i=0}^x (-1)^{x+i}\binom xi [2\nmid i]= (-1)^x\sum_{i=0}^x (-1)^{i}\binom xi [2\nmid i] \\ = (-1)^{x+1}\sum_{i=0}^{x} (-1)^{i+1}\binom xi [2\nmid i] \\ = (-1)^{x+1}2^{x-1} \]

posted @ 2020-12-10 20:37  xwmwr  阅读(77)  评论(0编辑  收藏  举报