闲话:
最近看 npesta 看的有点多,于是标题起的这个。
为什么一个非 GD 人会这么关注 GD 啊。
被 Limbo 震撼到了,尤其是最后的钥匙段,我一直盯着钥匙看了十几次也没看成功一次,GD 人太可怕。
决定在我还有一定理智的时候把我一直没看明白的东西写下来。
虽然还是不理解吧。
我是萌新,不要 D 我 qwq
拉格朗日反演
我们记 \(F(G(x)) = x\) 的两个多项式 \(F(x)\) 与 \(G(x)\) 为复合逆。
首先有一个性质:若 \(F(G(x)) = x\),那么 \(G(F(x)) = x\)。
我问 jjdw 这东西咋证明的,我忘了当时 jjdw 有没有给我证明了,反正我不会证。
拉格朗日反演:如果 \(F(x)\) 与 \(G(x)\) 互为复合逆,且 \(F(x)\) 和 \(G(x)\) 常数项为 \(0\),一次项系数不为 \(0\),那么:
\[[x^n] F(x) = \frac{1}{n}[x^{n - 1}] \left(\frac{x}{G(x)}\right)^n \]证明看不懂,咕了。
还有个扩展拉格朗日反演:$$[x^n] H(F(x)) = \frac{1}{n}[x^{n - 1}] H'(x)\left(\frac{x}{G(x)}\right)^n$$
卡特兰数
众所周知卡特兰数生成函数 \(C(x)=xC(x)^2 + 1\)。我们尝试凑 \(x\),首先把常数项去掉,那么设 \(F(x)=C(x) - 1\),那么就有 \(F(x) = x(F(x) + 1) ^ 2\),\(\frac{F(x)}{(F(x)+1)^2}=x\),那么 \(G(x)=\frac{x}{(x+1)^2}\)。
根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}](x+1)^{2n}=\frac{1}{n}\binom{2n}{n-1}=\frac{1}{n+1}\binom{2n}{n}\)。
大朋友和多叉树
求 \(n\) 个节点的无标号有根树的数量,满足非叶子节点的度数属于集合 \(A\),儿子有顺序。
考虑直接写出答案的生成函数:\(F(x)=\sum_{i \in A} F(x)^i + x\),\(F(x)\) 没有常数项,那么可以直接凑出 \(F(x) - \sum_{i \in A} F(x)^i = x\),那么 \(G(x) = x - \sum_{i\in A}x^i\)。
根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}]\left(\frac{x}{G(x)}\right)^n\),多项式求逆加多项式快速幂即可。
[ABC222H] Beautiful Binary Tree
理性偷税。
首先不难转化题意为求满足相邻两个点的数不全为 \(0\),且根节点为 \(1\) 的二叉树数量。
我们设 \(f_{0/1,n}\) 为根节点为 \(0/1\) 的 \(n\) 个节点的二叉树的数量,那么有:
\[f_{0,n} = 2 f_{1, n} + \sum_{i=0}^n f_{1,i} f_{1, n-i}, f_{0, 1} = 0 \]\[f_{1,n} = 2 (f_{0, n - 1} + f_{1, n - 1}) + \sum_{i=0}^{n-1} (f_{0, i} + f_{1,i}) (f_{0, n-1-i} + f_{1, n-1-i}), f_{1, 1} = 1 \]写成生成函数:
\[F_0(x) = 2F_1(x) + F_1(x)^2 \]\[F_1(x) = x(1 + 2(F_0(x) + F_1(x)) + (F_0(x) + F_1(x)) ^ 2) = x(F_0(x) + F_1(x) + 1) ^ 2 \]直接把 \(F_0(x)\) 代进去:
\[F_1(x) = x(F_1(x)^2 + 3F_1(x) + 1)^2 \]然后找复合逆:
\[x = \frac{F_1(x)}{(F_1(x)^2 + 3F_1(x) + 1)^2} \]\[G(x) = \frac{x}{(x^2+3x+1)^2} \]那么就可以直接套拉格朗日反演了:
\[\begin{aligned} [x^n]F_1(x) &= \frac{1}{n} [x^{n - 1}] (x^2+3x+1)^{2n}\\ &= \frac{1}{n}\sum_{i=0}^{2n}\binom{2n}{i}[x^{n-1}]x^{2i}(3x+1)^{2n-i}\\ &= \frac{1}{n}\sum_{i=0}^{2n}\binom{2n}{i}\binom{2n-i}{n-2i-1}3^{n-2i-1}\\ \end{aligned} \]复杂度 \(O(n)\)。
好了知道了 joke 你可以不用说了。
概率生成函数
不知道有没有用,反正我是闲的。
定义
定义一个非负整数随机变量 \(X\) 的概率生成函数 \(F_X(x)\) 为 \(F_X(x)=\sum_{i\ge 0} P(X=i) x^i\)。
首先众所周知 \(\sum_{i\ge 0} P(X=i) = 1\),那么也就是说 \(F_X(1)=1\)。
期望值
\[\begin{aligned} E(X) &= \sum_{i \ge 0} i P(X=i)\\ &= \sum_{i \ge 0} P(X=i) i 1^{i-1}\\ &= F_X'(1) \end{aligned} \]那么就是说,期望值就是生成函数的导数。
根据这个我们还可以推出另一个结论:\(E(X^{\underline{k}})=F^{(k)}_ X(1)\)。
方差
\[\begin{aligned} D(X) &= E(X^2) - E(X)^2\\ &= E(X^{\underline 2}) + E(X^{\underline 1}) - E(X)^2\\ &= F_X''(1) + F_X'(1) - F_X'(1)^2 \end{aligned} \]这给我们提供了一种不需要求概率就能计算期望或方差的方法。
卷积
没啥意思,就 \(F_{X+Y}(x) = F_X(x) F_Y(x)\),原因显然。
[CTSC2006]歌唱王国
题意:给定一个长为 \(n\) 的序列 \(A\),有一个序列 \(B\),初始为空,每次随机添加一个 \([1,m]\) 的数,当 \(B\) 中出现 \(A\) 序列时停止,问期望多少步结束?
我们设 \(f_i\) 为在第 \(i\) 步结束的概率,其概率生成函数为 \(F(x)\);
令 \(g_i\) 为第 \(i\) 步时还没结束的概率,其普通生成函数为 \(G(x)\)。
首先,我们考虑给仍未结束的序列加入单独的一个数,那么必然有 \(f_i + g_i = g_{i - 1}\),并且 \(f_0 = 0, g_0 = 1\),于是可以得到生成函数的关系 \(F(x) + G(x) = 1 + xG(x)\)。
两边求导,得到 \(F'(x) + G'(x) = G(x) + xG'(x)\)。
我们要求的期望值就是 \(F'(1)\),于是代入 \(x=1\),得到 \(F'(1) = G(1)\),那么我们想办法求 \(G(1)\)。
考虑给仍未结束的序列加入整个 \(A\) 序列。那么加入完成之后一定会结束,但是有可能提前结束,因为可能加入的一段前缀是 border,正好提前组成了 \(A\) 序列。那么可以写出以下式子:
\[G(x) \left(\frac{1}{m}x\right)^n = \sum_{i=1}^n a_i F(x) \left(\frac{1}{m}x\right)^{n - i} \]\(a_i\) 表示长度为 \(i\) 的前缀是否为 border。
那么我们代入 \(x=1\),就有 \(G(1) m^{-n} = \sum_{i=1}^n a_i m^{i-n}\),即 \(G(1) = \sum_{i=1}^n a_i m^i\)。
那么期望值就是 \(G(1) = \sum_{i=1}^n a_i m^i\)。
magic.
还有几个例题咕了。
感觉概率生成函数能解决的问题都和无穷过程求结束时间的期望值,所以这些题能不能用鞅与停时定理来做?
待考察。
好了今天的理智值用光了,大家再见。
标签:那么,frac,sum,反演,Mathematics,2n,aligned,Day From: https://www.cnblogs.com/apjifengc/p/17070387.html