【XSY4378】vanity(生成函数,拉格朗日反演)
题面
题解
关键在于对所有的 \(k\) 求:
\[[x^n]\left(x(e^x-1)\right)^k
\]
考虑使用拉格朗日反演,对于形式幂级数 \(H(x)\) 和 \(F(x)=x+O[x]^2\),有:
\[[x^n]H(F(x))=\frac{1}{n}[x^{-1}]H'(x)G(x)^{-n}
\]
设 \(H(x)=x^k\),为了凑出 \(F(x)=x+O[x]^2\) 的形式,若把原来的式子转化成 \([x^{n-k}](e^x-1)^k\),施拉格朗日反演可得:
\[\begin{aligned}[x^{n-k}](e^x-1)^k&=\frac{1}{n-k}[x^{n-1}]kx^{k-1}\left(\frac{x}{\ln(1+x)}\right)^{n-k}\\&=\frac{k}{n-k}[x^{n-k}]\left(\frac{x}{\ln(1+x)}\right)^{n-k}\end{aligned}
\]
这时你发现 \([x^{n-k}]\left(\dfrac{x}{\ln(1+x)}\right)^{n-k}\) 对于多个 \(k\) 来说并不好求。
事实上,正确的方法应该令 \(f=\sqrt{x(e^x-1)}\),把原来的式子转化成 \([x^n]f^{2k}\),再施拉格朗日反演:
\[\begin{aligned}[x^n]f^{2k}&=\frac{1}{n}[x^{n-1}]2kx^{2k-1}\left(\frac{x}{g(x)}\right)^n\\&=\frac{2k}{n}[x^{n-2k}]\left(\frac{x}{g(x)}\right)^n\end{aligned}
\]
于是只需求出 \(g=f^{<-1>}\) 即可。
此时看起来 \(g\) 并没有简洁的写法,但实际上我们可以通过牛顿迭代解出 \(g\):
\[\sqrt{g(e^g-1)}=x\\g(e^g-1)-x^2=0
\]
令 \(F(g)=g(e^g-1)-x^2\),解 \(F\) 的零点即可。