容斥原理及广义容斥(二项式反演)
容斥
就是这么一个公式:
因为本人太弱,不会严谨的数学证明,感性理解一下就是把那些重复的元素去掉就行了。
容斥的套路挺多的,还是要多做题。。。
广义容斥
貌似也叫二项式反演,总共有3种形式,但常用的只有两种:
1.若
\[f(n)=\sum\limits_{i=0}^{n}\binom{n}{i}g(i)
\]
那么
\[g(n)=\sum\limits_{i=0}^{n}(-1)^{n-i}\binom{n}{i}f(i)
\]
具体到做题中,通常\(f(i)\)代表的是至多选\(i\)个的方案数,\(g(i)\)代表的是恰好选\(i\)个的方案数,那么它们一定满足上面第一个式子(不会证啊)。而且通常是\(f(i)\)好求,那我们就可以把\(g(i)\)给反演出来了
2.若
\[f(k)=\sum\limits_{i=k}^{n}\binom{i}{k}g(i)
\]
那么
\[g(k)=\sum\limits_{i=k}^{n}(-1)^{i-k}\binom{i}{k}f(i)
\]
和上面差不多,通常\(f(k)\)代表的是至少选\(k\)个的方案数,\(g(k)\)代表的是恰好选\(k\)个的方案数,那么它们也一定满足\(2\)中的第一个式子。而且通常是\(f(i)\)好求,那我们也就可以把\(g(i)\)给反演出来了
这两个反演的证明就是带入+一个小小的组合恒等式
那两个式子一定要记牢(真的没有找到证明)
广义容斥貌似跟\(dp\)结合的非常多,因为要去求\(f(i)\)嘛