• Note 「Lagrange 反演」记笔习学


      也许施工完成啦?


      对于常数项为 \(0\),一次项非 \(0\) 的多项式 \(F,G\),定义复合运算 \(\circ\),满足

    \[(F\circ G)(x)=G(F(x))=\sum_{i\ge 0}g_iF^i(x). \]

    对于域 \(\mathbb F\),令 \(\mathcal S\)\(\mathbb F[[x]]\) 中所有满足上述条件的多项式构成的集合。对于任意多项式 \(F\in \mathcal S\),我们存在一种暴力构造方法唯一确定 \(G\) 使得 \(F\circ G=x\),因而 \(\circ\)\(\mathcal S\) 上可逆。继而不难说明,\((\mathcal S,\circ)\) 构成群,即多项式复合群

      注意在群意义下,满足 \(F\circ G=x\)\(F,G\) 应当互为逆元,因而有一个小结论

    \[F\circ G=x\Leftrightarrow G\circ F=x. \]

    此时,也称 \(F,G\) 互为复合逆


      Lagrange 反演指出,对于 \(F,G\in\mathcal S\),满足 \(F\circ G=x\) 时,有

    \[[x^n]G(x)=\frac{1}{n}[x^{-1}]F^{-n}(x). \]

      其中涉及比较诡异的 "\([x^{-1}]\)"。事实上,这些运算是在分式域下进行的。在分式域 \(\mathbb F(x)\) 下,任意非零整式 \(F(x)\) 存在乘法逆。因为我们总能找到 \(\mathbb F[[x]]\) 下的可逆整式 \(G(x)=F(x)/x^k\),那么此时 \(F^{-1}(x)=x^{-k}G^{-1}(x)\)

      接下来尝试证明反演公式。先证明引理:对于 \(k\in\mathbb Z,F\in\mathcal S\),有

    \[[x^{-1}]F'(x)F^{k}(x)=[k=-1]. \]

    • \(k\neq-1\)\(F'(x)F^k(x)=\left(\frac{F^{k+1}(x)}{k+1}\right)'\)。根据上文科普,这一结果为整式,因而 \([x^{-1}]=0\)
    • \(k=-1\)\([x^{-1}]F'(x)F^{-1}(x)=[x^0]F'(x)(F(x)/x)^{-1}\),根据 \(F\in\mathcal S\) 这一性质可知 \(F(x)/x\) 在整式下可逆。观察发现 \([x^0]F'(x)=[x^0](F(x)/x)=[x^1]F(x)\),因而 \([x^{-1}]F'(x)F^{-1}(x)=1\)

      接下来进行原命题证明。已知

    \[(G\circ F)(x)=\sum_{i\ge1}f_iG^i(x)=x. \]

    两边求导,

    \[\sum_{i\ge1}if_iG^{i-1}(x)G'(x)=1. \]

    靠向证明目标,两边(在分式域下)除以 \(G^n(x)\) 并取 \([x^{-1}]\)

    \[[x^{-1}]\sum_{i\ge1}if_iG^{i-1-n}G'(x)=[x^{-1}]G^{-n}(x). \]

    对左侧运用引理,当且仅当 \(i=n\)\([x^{-1}]G^{i-1-n}G'(x)=1\neq0\),因而

    \[nf_n=[x^{-1}]G^{-n}(x)\\ \Rightarrow \begin{cases} [x^n]F(x)=\frac{1}{n}[x^{-1}]G^{-n}(x)\\ [x^n]G(x)=\frac{1}{n}[x^{-1}]F^{-n}(x) \end{cases}.~~~~\square \]

      作为整式爱好者,可以将这一结论变为

    \[[x^n]G(x)=\frac{1}{n}[x^{n-1}](F(x)/x)^{-n}. \]

    其中 \(F(x)/x\) 整式下可逆,规避了分式域。


      扩展 Lagrange 反演:对于满足 \(F\circ G=x\)\(F,G\in\mathcal S\) 以及任意多项式 \(H(x)\),有

    \[[x^n](G\circ H)(x)=\frac{1}{n}[x^{-1}]H'(x)F^{-n}(x). \]

    证明依葫芦画瓢叭,首先有

    \[F\circ G=x\Rightarrow (F\circ G)\circ H=F\circ (G\circ H)=H. \]

    展开求导,

    \[\sum_{i\ge1}i\cdot[x^i](G\circ H)(x)\cdot F^{i-1}(x)F'(x)=H'(x). \]

    除以 \(F^n(x)\) 并取 \([x^{-1}]\),顺带用引理,

    \[n[x^n](G\circ H)(x)=[x^{-1}]H'(x)F^{-n}(x)\\ \Rightarrow [x^n](G\circ H)(x)=\frac{1}{n}[x^{-1}]H'(x)F^{-n}(x).~~~~\square \]

      当然也有好看 ver:

    \[[x^n](G\circ H)(x)=\frac{1}{n}[x^{n-1}]H'(F(x)/x)^{-n}. \]

    (好像啥也没多干啊。)


      喜闻乐见的例题时间。

      一定要看样例解释捏。(

      令 \(G(x)\) 为答案的 GF,\(F(x)=\sum_ix^{d_i}\),显然

    \[G(x)=x+F(G(x))\\ \Rightarrow G(x)-F(G(x))=x. \]

    \(H(x)=x-F(x)\),Lagrange 反演得

    \[[x^n]G(x)=\frac{1}{n}[x^{n-1}](H(x)/x)^{-n}. \]

    正巧 \([x^0](H(x)/x)=1\),规规整整多项式快速幂。复杂度 \(\mathcal O(n\log n)\)

      由于状态间的转移概率很方便刻画,但是结束状态反而难以表达,所以可以想到把期望轮数转化成:非法状态出现概率 \(\times\) 此时进行一次有效转移的期望轮数。后者仅与已有卡牌数量有关,故我们只需要求出前者,即确定已有卡牌数量情况下的非法状态数量。

      不同的连续段的计数是独立的。单独考虑长度为 \(n\) 的一个连续段,在其上构造非法状态的方法可描述为:任意获得连续的 \(t\in[0,k)\) 张卡牌,然后强制跳过一张卡牌。用对象 \(x\) 描述考虑过的卡牌数量,对象 \(y\) 表示跳过的卡牌数量。那么对于“连续获得卡牌”,其 GF 为

    \[P(x)=\frac{x-x^{k+1}}{1-x}. \]

    继而,上述构造方法所描述情景的 GF 为

    \[F(x,y)=\sum_{i\ge0}P^{i}(x)y^{i}=\frac{1}{1-P(x)y}. \]

      构造完成后,必然考虑过 \(n+1\) 张卡牌。(第 \(n\) 张之后又“强制跳过”一张。)所以,在长度为 \(n\) 的连续段上不选 \(m\) 张卡牌,使得连续段不合法的方案数为

    \[[x^{n+1}y^{m+1}]F(x,y). \]

    \(F\) 并不好求,我们需要继续推导。

      注意到 \((1-xy)^{-1}\) 对应的序列是平凡的,我们令 \(H(x,y)=(1-xy)^{-1}\),那么 \(F(x,y)=H(P(x),y)\)。尝试对这一二元复合函数施加扩展 Lagrange 反演。令 \(Q(x)\)\(P(x)\) 的复合逆,那么

    \[[x^{n+1}]F(x,y)=\frac{1}{n+1}[x^n]\frac{y}{(1-xy)^2}(Q(x)/x)^{-n-1}. \]

    求导出来一个 \((1-xy)^{-2}\),不过我们只取 \([x^{n+1}]\) 这一项,所以也很容易提取对应的 \(y\) 的系数。接下来就只需要求出 \((Q(x)/x)^{-n-1}\)

      根据假设,

    \[\frac{Q(x)-Q^{k+1}(x)}{1-Q(x)}=x\\ \Rightarrow x-(x+1)Q(x)+Q^{k+1}(x)=0. \]

    直接牛迭得到:

    \[Q_{2n}(x)=Q_n(x)+\frac{x-(x+1)Q_n(x)+Q_n^{k+1}(x)}{x+1-(k+1)Q_n^k(x)}. \]

    虽然一看常数就巨大但起码能求。

      最后,设第 \(i\) 个连续段关于 \(y\) 的 GF 为 \(R_i(y)=[x^{n_i+1}]F_i(x,y)\),则答案为

    \[\sum_{i=1}^m\binom{m}{i}^{-1}\cdot\frac{m}{i}\cdot[y^i]\prod_j R_j(y)/y. \]

    其中 \(R(y)/y\) 亦是处理最后一个虚假的“强制跳过”。瓶颈在于计算最后一项多项式卷积,复杂度 \(\mathcal O(m\log^2m)\),但我猜最慢的地方还是求 \(Q(x)\)

  • 相关阅读:
    校门外的树
    学生档案
    冒泡排序法
    寻找最大数序列
    初识结构体
    找零钱
    冒泡的应用
    关于数组的逆序重放
    关于质数
    字符串转换为日期格式
  • 原文地址:https://www.cnblogs.com/rainybunny/p/16217175.html
Copyright © 2020-2023  润新知