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