集合幂级数的 Ln, Exp
集合幂级数的$\ln,\exp$
起始:求联通子图个数
令$F(x)$为联通的生成子图个数的形式幂级数,可以简单求出$G(x)$为生成子图个数的形式幂级数
下可能略写$F(x)$为$F$
不连通的子图可以通过联通子图做集合并运算得到,即构造卷积
$\begin{aligned} F\times G=\sum_{S\ne \empty}\sum_{T\ne \empty,S\cap T=\empty} [x^S]F\cdot [x^T]G\cdot x^{S\cup T} \end{aligned}$显然满足关系式$\begin{aligned} G=\sum_{i\ge 1} \frac{F^i} {i!}=e^{F}-1\end{aligned}$
$F=\ln (G+1)$
计算集合幂级数$\ln$的方法似乎非常抽象
方法是:
1.类似子集卷积,把所有项按照占位数(集合包含元素个数)分开,记录在第二维
2.求出$\text{FMT}$
3.对于集合幂级数每一位(现在是一个形式幂级数)求出其$\ln$的前$n$项
4.求出$\text{IFMT}$
求出形式幂级数$\ln$的$n^2$方法是
$F=\ln (G+1)$
$F’=\frac{G’} {G+1}$
$F’(G+1)=G’$
$\begin{aligned}F'_i=G'_i-\sum_{j=1}G_jF'_{i-j}\end{aligned}$类似的,可以计算集合幂级数的$\exp$,即由上面的$F$求$G$
$\begin{aligned}G'_i=F'_i+\sum_{j=1}G_jF'_{i-j}\end{aligned}$可能在子图计数题中出现
下面是代码实现上的参考
1 |
|