多项式求逆.
要求的是带标号的 $n$ 个点的无向连通图数目.
设 $f(i)$ 表示 $i$ 个点时的答案,可以用图的总数减去不连通的图的数目.
枚举 $1$ 号节点所在连通块的大小为 $i$ 进行转移.
$$
f(n)=2^{n\choose 2}-\sum_{i=1}^{n-1} {n-1\choose i-1}\cdot f(j)\cdot 2^{n-i\choose 2}
$$
边界有 $f(1)=1$ .
为了进行优化,考虑将 $f(n)$ 这一项也弄到 $\sum$ 里面去.可以两边乘上 $\frac {1}{(n-1)!}$ ,整理得到,
$$
\frac{f(n)}{(n-1)!}+\sum_{i=1}^{n-1} \frac{f(i)\cdot 2^{n-i\choose 2}}{(i-1)!(n-i)!}=\frac{2^{n\choose 2}}{(n-1)!}
$$
规定 $f(0)=0$ ,就可以把 $f(n)$ 也弄进去了,对比可以验证正确性.
$$
\sum_{i=0}^{n} \frac{f(i)\cdot 2^{n-i\choose 2}}{(i-1)!(n-i)!}=\frac{2^{n\choose 2}}{(n-1)!}
$$
等式左边是一个卷积的形式,设三个多项式 $A,B,C$ 分别为
$$
A(x)=\sum_{i} \frac{f(i)}{(i-1)!} \cdot x^i \\
B(x)=\sum_{i}\frac{2^{i\choose 2}}{i!} \cdot x^i \\
C(x)=\sum_{i} \frac{2^{i\choose 2}}{(i-1)!} \cdot x^i
$$
则有 $A(x)B(x)=C(x)$ ,而 $C(x)$ 的最高次数为 $n$ .
于是
$$
A(x)\equiv B^{-1}(x)\cdot C(x) \pmod {x^{n+1}}
$$
用多项式求逆解决,时间复杂度 $O(n\log n)$ .
1 | //%std |