学不会的容斥和反演
UPD:粘个link
只是听课的笔记,因为数学真滴难且我是弱智所以不会有太多证明,具体证明见上面阳光帅气迷人爱笑实力超强的学长的诸多博客。
子集反演
二项式反演(+二项式定理)(见组合计数
莫比乌斯反演(+莫比乌斯函数)
最值反演($\textit{min_max}$容斥)
斯特林反演(+斯特林数性质)
单位根反演(根本不懂
1.子集反演
$g(S)=\sum_{T\subseteq S} f(T)$
$f(S)=\sum_{T\subseteq S}(-1)^{|S|-|T|}g(T)$
二式等价。从容斥奇加偶减理解。
2.莫比乌斯反演
莫比乌斯函数:
$\mu(n)=\begin{cases}0 &若n=1
\\ (-1)^k &若n无平方数因子,k为n的质因子个数
\\ 1 &若n有平方数因子 \end{cases}$
对函数$F$与$f$,有:
$F(n)=\sum_{d|n}f(d)\Leftrightarrow f(n)=\sum_{d|n}\mu(d)F(\left \lfloor \frac{n}{d} \right \rfloor)$
$F(n)=\sum_{n|d}f(d)\Leftrightarrow f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)$
对莫比乌斯函数有:
$\sum_{d|n}\mu(d)=[n=1]$
$\sum_{i=0}^n\binom{n}{i}(-1)^i=(1-1)^n=[n=0]$
3.最值反演/$\textit{min_max}$容斥
设$Max(S)$为集合$S$中最大元素,$Min(S)$为集合$S$中最小元素,有:
$Max(S)=\sum_{\phi \neq T\subseteq S}(-1)^{|T|-1}Min(T)$
考虑设容斥系数$f(i)$,令容斥系数只在最小值等于最大值时取$1$,其余时候取$0$,有:
$Max(S)=\sum_{\phi\neq T\subseteq S}f(|T|)Min(T)$
设当前考虑元素为第$r$小,枚举子集中大于$r$的元素个数,贡献为
$\sum_{i=1}^{n-r}f(i+1)=[n=r]=[n-r=0]$
设$g(n)=[n=0]$,$h(n)=f(n+1)$,二项式反演,有:
$g(n)=\sum_{i=0}^n\binom{n}{i}h(i)$
$h(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}g(i)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}[i=0]$
$f(n)=(-1)^{n-1}$
求期望的时候很好用,因为有
$\mathbb{E}(Max(S))=\sum_{\phi \neq T\subseteq S}(-1)^{|T|-1}\mathbb{E}(Min(T))$
4.斯特林反演
第一类斯特林数:$\begin{bmatrix}n\\k \end{bmatrix}$,称作$n$轮换$k$,为将$n$个元素的集合划分为$k$个子集后的圆排列方案数。
第二类斯特林数:$\begin{Bmatrix}n\\k \end{Bmatrix}$,称作$n$划分$k$,为将$n$个元素的集合划分为$k$个子集的方案数。
递推式:考虑新一个元素是否自己成为一个子集:
$\begin{bmatrix}n\\k \end{bmatrix}= \begin{bmatrix}n-1\\k-1 \end{bmatrix}+(n-1)\begin{bmatrix}n-1\\k \end{bmatrix}$
$\begin{Bmatrix}n\\k \end{Bmatrix}= \begin{Bmatrix}n-1\\k-1 \end{Bmatrix}+k\begin{Bmatrix}n-1\\k \end{Bmatrix}$
第一类斯特林数的一些性质:
1.
$\sum_{i=0}^n\begin{bmatrix}n\\k\end{bmatrix}=n!$
可以考虑从元排列向新组成的排列连边证明。
2.
$x^{\underline{n}}=\sum_{i=0}^n(-1)^{n-i}\begin{bmatrix}n\\i \end{bmatrix}x^i$
$(x^{\underline{n}}=\prod_{i=0}^{n-1}(x-i))$
3.
$x^{\overline n}=\sum_{i=0}^n\begin{bmatrix}n\\i \end{bmatrix}x^i$
$(x^{\overline{n}}=\prod_{i=0}^{n-1}(x+i))$
两个很重要的性质,第一类斯特林数可以将升降幂转为通常幂。可以进行归纳证明。
第二类斯特林数的性质:
1.
$k^n=\sum_{i=0}^k\begin{Bmatrix}n\\i \end{Bmatrix}i!\binom{k}{i}=\sum_{i=0}^k
\begin{Bmatrix}n \\i \end{Bmatrix}k^{\underline{i}}$
我们在$k$个集合中选择$i$个集合放入元素,然后全排列这些集合,得到的就是$n$个元素放入$k$个可空集合的方案数。
2.
$\begin{Bmatrix}n\\ k\end{Bmatrix}=\frac{1}{k!}\sum_{i=0}^j(-1)^i\binom{k}{i}(k-i)^n$
考虑划分出空集数量,二项式反演证明。
斯特林数两个反转公式:
$\sum_{i=m}^n(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}\begin{Bmatrix}i\\m \end{Bmatrix}=[m=n]$
$\sum_{i=m}^n(-1)^{n-i}\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\m \end{bmatrix}=[m=n]$
用于证明斯特林反演。
斯特林反演:
$f(n)=\sum_{i=0}^n\begin{Bmatrix}n\\i \end{Bmatrix}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n\begin{bmatrix}n\\i \end{bmatrix}(-1)^{n-i}f(i)$
6.单位根反演
向量旋转?不懂,也不知道怎么用。。
$w_k^i$为复平面内将$(1,0)$逆时针旋转$\frac{2i\pi}{k}$后得到的虚数。有:
$[k|n]=\frac{1}{k}\sum_{i=0}^{k-1}w_k^{in}$
数学是为数不多能让我自愿去码数据结构题的东西— .—
看我自己写的博客已经开始头疼了。。