组合容斥计数技巧

小学奥数容斥

如果有:

[f(m)=sum_{i=m}^{n}inom{i}{m} imes g(i) ]

那么:

[sum_{i=1}^{n}g(i)=f(1)-f(2)+f(3)-f(4)+...=sum_{i=1}^{n}(-1)^{i+1} imes f(i) ]

适用于DP数组需要使用(sum_{i=1}^{n}g(i))推出,并且可以快速计算(f(n))的情况(通常(f(0),g(0))不存在/无意义)。

证明方法:二项式反演

图计数的一些不知道有用没用的套路

如果要求图连通,可以通过容斥弱化限制条件,所有方案的减去不连通的方案,通过枚举编号最小的点所在连通块的大小以保证不会重复计算。

如果要求是DAG,因为DAG上必然存在入度为(0)的点,所以可以枚举度数为(0)的点的个数,然后让这些点向其他点连边。但是其他点中也有可能存在度数为(0)的点,所以还要用上面写的小学奥数容斥处理一下。

未完待续......

原文地址:https://www.cnblogs.com/ErkkiErkko/p/10396666.html