多项式复合+拉格朗日反演

多项式复合

多项式复合形如$F(G(x))$,即复合函数,较为数学的形式可以写作$u=F(v),v=G(x)$

在符号上,记做$F\circ G=F(G(x))$

稍微展开一下就是$\begin{aligned} F(G(x))=\sum_i [x^i]F(x)\cdot G^i(x)\end{aligned}$

拉格朗日(Lagrange)反演

数学上,拉格朗日反演揭示了幂函数的反函数的形式

OI上,拉格朗日反演是复合逆/反函数的反演

对于多项式$F(x),G(x)$,若他们的复合满足$F(G(x))=x$,则$F(x)$与$G(x)$互为复合逆(若在非模意义下,$y=F(x),y=G(x)$的图像关于直线$y=x$对称,即反函数),此时也有$G(F(x))=x$

拉格朗日反演用于求解复合逆的一项的值:

$\begin{aligned} [][x^n]F(x)=\frac{1} {n}[x^{-1}](\frac{1} {G(x)})^n\end{aligned} $

显然,存在复合逆的多项式必然没有常数项

所以上式写成更阳间的样子就是$\begin{aligned}[] [x^n]F(x)=\frac{1} {n}[x^{n-1}](\frac{x} {G(x)})^n\end{aligned} $

由于证明太~~,咕了

另外还有扩展拉格朗日反演

$\begin{aligned} [][x^n]H(F(x))=\frac{1} {n}[x^{n-1}]H'(x)(\frac{x} {G(x)})^n\end{aligned}$

多项式复合逆

对于给定的$F(x)$,求其复合逆

带入拉格朗日反演的式子

$\begin{aligned} F(x)=\sum \frac{1} {i}[x^{i-1}](\frac{x} {G(x)})^i x^i\end{aligned} $

求这个式子的核心是 分块+暴力

$i=a\cdot S+b$,求出$(\frac{x} {G(x)})^{Sa},(\frac{x} {G(x)})^b$,然后直接对于每个位置把两个式子暴力合并即可

两部分复杂度总和为$O(n\sqrt n\log n+n^2)$