多项式复合逆和拉格朗日反演

引入

设有多项式 F ( x ) , G ( x ) F(x),G(x) F(x),G(x),满足常数项为 0 0 0 且一次项不为 0 0 0

如果 G ( F ( x ) ) = x G(F(x))=x G(F(x))=x ,则有 F ( G ( x ) ) = x F(G(x))=x F(G(x))=x 。此时,称 F F F G G G 互为复合逆

拉格朗日反演及其扩展用于求一类 G ( F ( x ) ) = H ( x ) G(F(x))=H(x) G(F(x))=H(x) 的问题,其中 G ( x ) , H ( x ) G(x),H(x) G(x),H(x) 为已知多项式函数, F ( x ) F(x) F(x) 为待求函数。但其只能在 O ( n log ⁡ n ) O(n \log n) O(nlogn) 的时间内求得 F ( x ) F(x) F(x) 的某一项系数。

拉格朗日反演

G ( F ( x ) ) = x G(F(x))=x G(F(x))=x ,则有
[ x n ] F ( x ) = 1 n [ x − 1 ] 1 G n ( x ) [ x n ] H ( F ( x ) ) = 1 n [ x − 1 ] H ′ ( x ) 1 G n ( x ) [x^n]F(x)=\frac{1}{n}[x^{-1}]\frac{1}{G^n(x)} \\ [x^n]H(F(x))=\frac{1}{n}[x^{-1}]H'(x)\frac{1}{G^n(x)} [xn]F(x)=n1[x1]Gn(x)1[xn]H(F(x))=n1[x1]H(x)Gn(x)1
这个 [ x − 1 ] [x^{-1}] [x1] 是什么东西,我学的形式幂级数没有 x − 1 x^{-1} x1 项啊。

我们把右边的式子乘以 x n x^n xn ,系数取 [ x n − 1 ] [x^{n-1}] [xn1] ,那么
[ x n ] F ( x ) = 1 n [ x n − 1 ] ( x G ( x ) ) n [ x n ] H ( F ( x ) ) = 1 n [ x n − 1 ] H ′ ( x ) ( x G n ( x ) ) n [x^n]F(x)=\frac{1}{n}[x^{n-1}](\frac{x}{G(x)})^n \\ [x^n]H(F(x))=\frac{1}{n}[x^{n-1}]H'(x)(\frac{x}{G^n(x)})^n [xn]F(x)=n1[xn1](G(x)x)n[xn]H(F(x))=n1[xn1]H(x)(Gn(x)x)n

证明

G ( F ( x ) ) = x ∑ i = 1 ∞ a i F i = x \begin{aligned} G(F(x))&=x \\ \sum_{i=1}^{\infty} a_iF^i&=x \end{aligned} G(F(x))i=1aiFi=x=x

两边同时对 x x x 求导
∑ i = 1 ∞ i a i F i − 1 F ′ = 1 \sum_{i=1}^{\infty} ia_iF^{i-1}F'=1 \\ i=1iaiFi1F=1
两边同时除以 F n F^n Fn ,取 x − 1 x^{-1} x1 的系数
[ x − 1 ] ∑ i = 1 ∞ i a i F i − n − 1 F ′ = [ x − 1 ] 1 F n [x^{-1}]\sum_{i=1}^{\infty}ia_iF^{i-n-1}F'=[x^{-1}]\frac{1}{F^n} [x1]i=1iaiFin1F=[x1]Fn1
观察左边的式子

i ≠ n i\ne n i=n 时, F i − n − 1 F ′ = 1 i − n ( F i − n ) ′ F^{i-n-1}F'=\frac{1}{i-n}(F^{i-n})' Fin1F=in1(Fin) 。我们知道一个任意一个多项式求导 x − 1 x^{-1} x1 的系数都为 0 0 0 。所以 [ x − 1 ] i a i F i − n − 1 F ′ = 0 [x^{-1}]ia_iF^{i-n-1}F'=0 [x1]iaiFin1F=0

i = n i=n i=n 时, F − 1 F ′ = a 1 + 2 a 2 x + 3 a 3 x 2 + . . . a 1 x + 2 a 2 x 2 + 3 a 3 x 3 + . . . = a 1 + 2 a 2 x + . . . a 1 x ⋅ 1 1 + ( a 2 a 1 x + a 3 a 2 x + . . . ) F^{-1}F'=\frac{a_1+2a_2x+3a_3x^2+...}{a_1x+2a_2x^2+3a_3x^3+...}=\frac{a_1+2a_2x+...}{a_1x}\cdot\frac{1}{1+(\frac{a_2}{a_1}x+\frac{a_3}{a_2}x+...)} F1F=a1x+2a2x2+3a3x3+...a1+2a2x+3a3x2+...=a1xa1+2a2x+...1+(a1a2x+a2a3x+...)1

左边的分母 1 + ( a 2 a 1 x + a 3 a 2 x + . . . ) 1+(\frac{a_2}{a_1}x+\frac{a_3}{a_2}x+...) 1+(a1a2x+a2a3x+...) 是可逆的,且其逆的常数项的为 1 1 1 。又因为 [ x − 1 ] a 1 + 2 a 2 x + . . . a 1 x = 1 [x^{-1}]\frac{a_1+2a_2x+...}{a_1x}=1 [x1]a1xa1+2a2x+...=1 ,所以 [ x − 1 ] F − 1 F ′ = 1 [x^{-1}]F^{-1}F'=1 [x1]F1F=1

所以原式可以化成
n a n = [ x − 1 ] 1 F n a n = 1 n [ x − 1 ] 1 F n \begin{aligned} na_n&=[x^{-1}]\frac{1}{F^n} \\ a_n&=\frac{1}{n}[x^{-1}]\frac{1}{F^n} \end{aligned} nanan=[x1]Fn1=n1[x1]Fn1
发现 F F F 没有逆,而且形式幂级数也没有 x − 1 x^{-1} x1 。则把给右边乘以 x n x^n xn ,再取 x n − 1 x^{n-1} xn1 的系数就是
a n = 1 n [ x n − 1 ] ( x F ) n [ x n ] G = 1 n [ x n − 1 ] ( x F ) n a_n=\frac{1}{n}[x^{n-1}](\frac{x}{F})^n \\ [x^n]G=\frac{1}{n}[x^{n-1}](\frac{x}{F})^n an=n1[xn1](Fx)n[xn]G=n1[xn1](Fx)n
得证。

例题

【BZOJ3684】大朋友和多叉树

posted @ 2022-10-10 20:18  缙云山车神  阅读(57)  评论(0编辑  收藏  举报