图计数
1.无向连通图
任意图取ln即可
2.欧拉回路图
偶数度图取ln即可,偶数度图方案数为\(2^{C(n-1,2)}\)。(考虑先生成一张\(n-1\)个点的任意图,然后第\(n\)个点和前\(n-1\)个点的连边方案是确定的。)
3.连通生成子图
阿巴阿巴
4.DAG
容斥计算有\(k\)个\(0\)度点。
写出式子
\[f_n=\sum_{i=1}^n (-1)^{i-1}*C_{n}^{i}*2^{i*(n-i)}*f_{n-i}
\]
发现有一个\(2^{i*(n-i)}\)比较难处理
考虑
\[i*(n-i)=C_{n}^{2}-C_{i}^{2}-C_{n-i}^{2}
\]
直接转求逆即可
5.弱联通图DAG
对DAG取ln即可
6.强联通计数
答案:\(f_n\)
任意有向图:\(h_n\)
考虑用\(h_n\)减掉不合法的方案来计算
对于不合法的方案。
尝试枚举缩点后\(DAG\)中度数为\(0\)的强联通分量。
注意这里要枚举两个东西
第一要枚举原图有多少个点在缩点后成为了\(DAG\)中度数为\(0\)的强联通分量,设为\(k\)
第二要枚举一共形成了多少个强联通分量,设为\(i\)。
为了保证这个图不是恰好一个强联通分量,我们令\(k\)的上界为\(n-1\)就可以了。
于是可以写出下式
分治ntt即可。
7.哈密顿路径计数(卡空间)
8.边双连通图计数
容斥割边的数量
然后套用基于prufer序列的\(n\)个点\(m\)个连通块连边形成一棵树的公式
可以写出一个多项式\(g_i=-n*i*h_i*x^i\)
其中\(h_i\)为连通图的数量
对\(g_i\)做\(exp\)后
\(ans=-\frac{f_n*n!}{n^2}\)
9.点双连通图计数
阿巴阿巴
10.二分图计数
\(F\):二分染色图计数
\[f_n=\sum_{i=0}^n C_n^{i}*2^{i*(n-i)}
\]
一遍多项式乘法即可
\(G\):连通二分图计数
\[F=\sum \frac{2^i*G^i}{i!}=e^{2G}
\\
G=lnH=\frac{1}{2}lnF
\]
\(H\):二分图计数
\[H=e^G=\sqrt F
\]