bzoj 3456 城市规划 无向简单连通图个数 多项式求逆
题目大意
求n个点的无向简单连通图个数
做法1
\(f[i]\)表示i个点的无向简单连通图个数
\(g[i]=2^{\frac {i*(i-1)}{2}}\)表示i个点的无向简单图个数(不要求连通)
f[i]就是g[i]减去不连通的情况数
我们枚举\(1\)所在连通块大小\(j\)
则有
\[\begin{aligned}
f[i]&=g[i]-\sum_{j=1}^{i-1}\binom {i-1}{j-1}f[j]*g[i-j]\\
g[i]-f[i]&=\sum_{j=1}^{i-1}\frac{(i-1)!}{(j-1)!(i-j)!}f[j]*g[i-j]\\
\frac {g[i]}{(i-1)!}-\frac {f[i]}{(i-1)!}&=\sum_{j=1}^{i-1}\frac{f[j]}{(j-1)!}*\frac {g[i-j]}{(i-j)!}\\
\frac {g[i]}{(i-1)!}&=\sum_{j=1}^{i}\frac{f[j]}{(j-1)!}*\frac {g[i-j]}{(i-j)!}\\
A&=B*C\\
B&=A*C^{-1}
\end{aligned}
\]
好了显然了
弄成生成函数求个逆就好了
做法2
\[\begin{aligned}
\frac {g[i]}{(i-1)!}&=\sum_{j=1}^{i}\frac{f[j]}{(j-1)!}*\frac {g[i-j]}{(i-j)!}\\
提出\frac {f[i]}{(i-1)!}\\
\frac {f[i]}{(i-1)!}&=\frac {g[i]}{(i-1)!}-\sum_{j=1}^{i-1}\frac{f[j]}{(j-1)!}*\frac {g[i-j]}{(i-j)!}\\
\end{aligned}
\]
分治+FFT
做法3
多项式求ln
solution
没时间了先不写了 挖坑