拉格朗日反演的口胡证明

偏口胡,若不严谨见谅……

以下多项式的运算是关于形如 \(f(x) = ...a_{-2}x^{-2} + a_{-1}x^{-1} + a_0 + a_1x ...\) 的“多项式”的。这允许我们对没有常数项的多项式求逆。

具体,如果 \(f(x) = x^t F(x)\) ,其中 \([x^0]F(x) \ne 0\),那么 \(\dfrac{1}{f(x)} = x^{-t} \cdot \dfrac{1}{F(x)}\)

当然 \(0\) 还是没有逆元。

那么有:

\[[x^0]f(x) = [x^0]g(x) = 0,[x^1]f(x) \ne 0,[x^1]g(x) \ne 0,f(g(x)) = x \to [x^n]f(x) = \frac{1}{n} [x^{n-1}](\frac{x}{g(x)})^n \]

证明:

\[x=\sum_{i=1} [x^i]f(x) \cdot g^{i}(x) \]

对两边求导:

\[1 = \sum_{i=1} [x^i]f(x) \cdot i\cdot g^{i-1}(x) \cdot g'(x) \]

现在我们希望能得到 \([x^n]f(x)\) ,那么最好能通过一些转换使 \(i \ne n\)\([x^i]f(x)\) 会带上一个 \(0\) 的系数。

注意到

\[i \ne -1 \to g^{i}(x) \cdot g'(x) = \frac{1}{i+1}[g^{i+1}(x)]' \]

\[\forall g,[x^{-1}]g'(x) = 0 \]

那么把两边同时乘上 \(g^n(x)\) 的逆元,然后只考虑第 \(-1\) 项的系数。那么对于右式,只有 \(i=n\) 时需要考虑。

\[[x^{-1}][\frac{1}{g(x)}]^n = \sum_{i=1} [x^i]f(x) \cdot i \cdot[x^{-1}][ g^{i-n-1}(x) \cdot g'(x) ] = [x^n]f(x) \cdot n \cdot [x^{-1}]\frac{g'(x)}{g(x)} \]

\[[x^{-1}]\frac{g'(x)}{g(x)} = [x^{-1}] \frac{\sum_{i=1}[x^i]g(x) \cdot i\cdot x^{i-2}}{\sum_{i=1}[x^i]g(x) \cdot x^{i-1}} \]

这样分母就可以求逆,要考虑的只有常数项 \(\dfrac{1}{[x^1]g(x)}\) ;分子中要考虑的只有 \(-1\) 次项,即 \([x^1]g(x)\)

所以 \([x^{-1}]\dfrac{g'(x)}{g(x)}=1\)

那么得到

\[[x^n]f(x) = \frac{1}{n}[x^{-1}] [\frac{1}{g(x)}]^n = \frac{1}{n}[x^{n-1}] (\frac{x}{g(x)})^n \]

有一个扩展,考虑多项式 \(h(x)\) ,若令 \(H(x) = h(f(x))\) ,那么有 \(H(g(x)) = h(x)\),再套用上面的分析,可以得到

\[[x^n]h(f(x)) = \frac{1}{n} [x^{n-1}] h'(x) \cdot (\frac{x}{g(x)})^{n} \]

还有一个重要结论,对于两个幂级数 \(f,g\) ,若 \(f(g(x)) = x\)\(g(f(x)) = x\) 。(没找到证明


例子:求 \(n\) 个点的不同构有根无标号二叉树数量。(也就是第 \(n\) 个卡特兰数的通项推导)

那么有

\[[x^0]f(x) = 1,[x^i]f(x) = \sum_{j=0}^{i-1}[x^j]f(x) \cdot [x^{i-1-j}]f(x) \to f(x)=f^2(x)+1 \]

为了拉格朗日反演,我们令 \(F(x) = x f(x)\) ,则有 \(F(x)=F^2(x)+x\) 。考虑令 \(G(F(x))=x\) ,那么容易得到 \(G(x) = x-x^2\)

上拉格朗日反演:

\[[x^n]F(x) = \dfrac{1}{n}[x^{n-1}](1-x)^{-n}\\ =\dfrac{1}{n} \binom{-n}{n-1}\cdot(-1)^{n-1}\\ =\dfrac{1}{n} \dfrac{(2n-2)!}{(n-1)!(n-1)!}=\dfrac{\dbinom{2n-2}{n-1}}{n} \]

\[[x^n]f(x) = [x^{n+1}]F(x) = \dfrac{\dbinom{2n}{n}}{n+1} \]

AT222H:Beautiful Binary Tree

显然当且仅当任何一个 \(1\) 结点可以花费一次操作上传到一个祖先 \(1\) 结点时,且根和所有叶子都是 \(1\) 结点时,这棵树合法。

等价于不能有两个相邻的 \(0\) 结点。

那么设 \(f_1(x)\) 表示根为 \(1\) 结点,且没有两个相邻 \(0\) 结点的生成函数, \(f_2(x)\) 表示根为 \(0\) 结点,且没有两个相邻 \(0\) 结点的生成函数,且其中 \([x^0]f_1(x) = 0,[x^0]f_2(x) = 1\)

二者有关系

\[f_2(x) = f_1^2(x)+2f_1(x)+1,f_1(x) = x[f_1(x)+f_2(x)]^2 \]

得到

\[f_1(x) = x[f_1^2(x)+3f_1(x)+1]^2 \]

这个时候已经可以牛迭了,复杂度 \(O(n\log n)\)

考虑拉格朗日反演,令

\[g(f_1(x))=x \to g(x) = \frac{x}{(x^2+3x+1)^2} \]

\[[x^n]f_1(x) = \frac{1}{n}[x^{n-1}](x^2+3x+1)^{2n}\\ =\frac{1}{n}\sum_{i=0}\binom{2n}{i}3^{n-1-2i}\binom{2n-i}{n-1-2i} \]

复杂度 \(O(n)\) 。讲个笑话,这是 ABC。


posted @ 2021-04-18 20:39  RUI_R  阅读(164)  评论(0编辑  收藏  举报