1. 程式人生 > 其它 >SP1480口胡

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)\) 的。