「总结」容斥。二.反演原理 2.组合容斥
2.二项式反演。
运用最频繁的反演之一。形式很多。
这里写一下最常用的两种形式:
至多形式:
$$g(m)=\sum\limits_{i=0}^{m}\binom{m}{i}f(i)$$
$$f(m)=\sum\limits_{i=0}^{m}(-1)^{m-i}\binom{m}{i}g(i)$$
至少形式:
$$g(m)=\sum\limits_{i=m}^{n}\binom{i}{m}f(i)$$
$$f(m)=\sum\limits_{i=m}^{n}(-1)^{i-m}\binom{i}{m}g(i)$$
证明:
只证明至多形式。
$$f(m)=\sum\limits_{i=0}^{m}(-1)^{m-i}\binom{m}{i}g(i)$$
$$=\sum\limits_{i=0}^{m}\sum\limits_{j=0}^{i}(-1)^{m-i}\binom{m}{i}\binom{i}{j}f(j)$$
$$=\sum\limits_{i=0}^{m}\sum\limits_{j=0}^{i}(-1)^{m-i}\binom{m-j}{i-j}\binom{m}{j}f(j)$$
改变枚举顺序。
$$=\sum\limits_{j=0}^{m}\binom{m}{j}f(j)\sum\limits_{i=j}^{m}(-1)^{m-i}\binom{m-j}{i-j}$$
后面的部分是$m-j$行二项式系数的奇偶错减,只有$j=m$的时候为1,其余为0。
$$=\sum\limits_{j=0}^{m}\binom{m}{j}f(j)[j=m]$$
$$=f(m)$$
证毕。
题目。
$fr.$放棋子。
这个题看起来很像二项式反演。
发现每个颜色的棋子必然要占据他所在的行和列。
设$g[i][j][k]$为第$i$种颜色的棋子占据$j$行$k$列的方案数。
$f[i][j][k]$为前$i$种颜色占了$j$行$k$列的方案数。
如果我们的到了$g$,就可以做二维背包求出$f$.
现在问题转化为求$g$
设至少有$l$行$r$列有棋子的方案为$h(l,r)$,恰好有这么多被占的为$p(l,r)$
那么
$$h(n,m)=\sum\limits_{i=n}^{mxn}\sum\limits_{j=m}^{mxm}\binom{i}{n}\binom{j}{m} p(i,j)$$
$$p(n,m)=\sum\limits_{i=n}^{mxn}\sum\limits_{j=m}^{mxm}(-1)^{i+j}\binom{i}{n}\binom{j}{m}h(i,j)$$
我们发现要求的$g[j][k]=p(j,k)$
这样看起来仍然不是很好算因为我们很难求出$h(i,j)$于是考虑舍弃二项式反演。
没错正解不是二项式反演。
而我拿出这道题的原因就是我考场上推了很久的二项式反演。
这也提醒我:用二项式反演之前要注意是否有一个已知函数是极便于求出的,如果不是,那么反演即使本身正确,也难以在正确的复杂度内求解。
正解是补集容斥。
$$g[n][m]=\binom{nm}{num}-\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{m}\binom{n}{i}\binom{m}{j}g[i][j]$$
$se.$染色
这个是真的二项式反演。
设$f(k)$为恰好出现$S$次的颜色有$k$个的方案数,$g(k)为至少$。
那么:
$$g(k)=\binom{m}{k}\binom{n}{kS}\frac{(kS)!}{(S!)^k}(m-k)^{n-kS}$$
$$g(k)=\sum\limits_{i=k}^{m}\binom{i}{k}f(i)$$
二项式反演得到
$$f(k)=\sum\limits_{i=k}^{m}(-1)^{i-k}\binom{i}{k}g(i)$$
再继续推一推就会发现是卷积的形式,这个时候我们$FFT$一发就可以在$O(mlogm)$时间内求出没一个$f(k)$的取值,乘权累加即可。