SP1480口胡

《四重计树法》

  1. 有标号无根

prufer 序列,\(n^{n-2}\)。

  1. 有标号有根

prufer 序列,\(n^{n-1}\)。

  1. 无标号有根

设 \(f[n]\) 为 \(n\) 个节点时的答案,有:

\[f[n]=\sum_{k=1}^n\frac{[\sum_{i=1}^ks_i=n-1]\prod_{i=1}^kf[s_i]}{k!} \]

人话就是 \(F(x)=x\exp(F(x))\)。

考虑求导列出 ODE 然后 \(O(n^2)\)。

\[(x\sum_{i=0}\frac{F^i(x)}{i!})' \]

\[e^{F(x)}+x\sum_{i=0}\frac{iF'(x)F^{i-1}(x)}{i!} \]

\[e^{F(x)}+xF'(x)\sum_{i=1}\frac{F^{i-1}(x)}{(i-1)!} \]

\[e^{F(x)}+xF'(x)e^{F(x)} \]

\[F'(x)=e^{F(x)}+F'(x)F(x) \]

\[F(x)=\frac{F'(x)-e^{F(x)}}{F'(x)} \]

只要维护出了 \(F(x)\),就可以维护出 \(e^{F(x)},F'(x)\) 和 \(\frac{1}{F'(x)}\),进而计算下一项,复杂度 \(O(n^2)\)。

  1. 无标号无根

同样的,我们有 \(F(x)=x\times Euler(x)\)。

展开:

\[F(x)=x\sum_{i=0}\frac{F(x^i)}{i} \]

求导:

\[F'(x)=Euler(F(x))+x\sum_{i=0}\frac{ix^{i-1}F'(x^i)}{i} \]

\[F'(x)=Euler(F(x))+\sum_{i=0}x^iF(x^i) \]

\[F'(x)=\frac{F(x)}{x}+\sum_{i=0}x^iF(x^i) \]

\[xF'(x)=F(x)+x\sum_{i=0}x^iF(x^i) \]

\[F(x)=xF'(x)-x\sum_{i=0}^nx^iF(x^i) \]

同样的,我们能够动态维护 \(F(x)\) 就可以维护右边那一车东西,复杂度仍然是 \(O(n^2)\) 的。

上一篇:列表和字典循环打印最好不要随便进行删除操作,容易出错


下一篇:shell脚本应用《十》查看多个系统CPU,指定的进程CPU,主备机,内存使用情况