[整理][持续更新]一些杂碎多项式/生成函数知识点

0.前言

为了照顾基础参差不齐的读者,本文在可能有必要给出证明的地方均给出简要证明。顺便强烈谴责 zythonc 的不证明作风
可能整理得十分杂乱。

1.Euler 变换

1.0.概念

众所周知,一个 EGF 的 \(\exp\) 拥有组合意义:把 \(n\) 个有标号元素分成若干无标号集合的方案数。
例如,有标号生成森林的 EGF 是有标号生成树 EGF 的 \(\exp\),因为生成森林是若干个生成树。
那么元素也无标号呢?我们有 \(\prod\limits_i\dfrac{1}{(1-x^i)^{f_i}}\)
证明:我们枚举集合大小,于是答案为 \(\prod\limits_i\prod\limits_{j=1}^{f_i}(1+x^i+x^{2i}+\dots)\),即得上式。
或者你可以理解为一个无限背包,体积为 \(i\) 的有 \(f_i\) 种,于是您就可以用它碾掉付公主的背包。

1.1.例题

不过那题还需要一些简易的推导,罗列如下。

\[\begin{aligned} &\prod_i\dfrac{1}{(1-x^i)^{f_i}}\\ =&\exp\left(\sum_if_i\ln\dfrac{1}{1-x^i}\right)\\ =&\exp\left(\sum_if_i\sum_{j}\dfrac{x^{ij}}{j}\right) \end{aligned} \]

里面的东西只有 \(O(n\log n)\) 项是有效的,可以方便地计算贡献,于是这题就做完了。

2.单位根反演

2.0.概念

式子非常简洁:\([n|k]=\dfrac 1n\sum\limits_{i=0}^{n-1}\omega_n^{ik}\)
证明:由单位根的性质得当 \([n|k]\) 为假时,RHS 为 \(\dfrac 1n\dfrac{1-\omega_n^{nk}}{1-\omega_n^k}=0\);当 \([n|k]\) 为真时,RHS 为 \(\dfrac 1n\sum\limits_{i=0}^{n-1}1=1\),于是定理得证。
它可以用来求形如 \([a\bmod p=b]=[p|a-b]=\dfrac 1p\sum\limits_{i=0}^{p-1}\omega_p^{ia-ib}\) 的式子。

2.1.例题

看一道例题:LOJ #6485。
题目要求 \(\sum\limits_{i=0}^n\dbinom nis^ia_{i\bmod4}\),我们发现它拥有上面提到的同余形式,所以暴力碾式子。

\[\begin{aligned} &\sum_{i=0}^n\dbinom nis^i\sum_{j=0}^3a_i[i\bmod4=j]\\ =&\dfrac14\sum_{i=0}^n\dbinom nis^i\sum_{j=0}^3a_j\sum_{k=0}^3\omega_4^{ik}\omega_4^{-jk}\\ =&\dfrac14\sum_{j=0}^3a_j\sum_{i=0}^n\dbinom nis^i\sum_{k=0}^3\omega_4^{ik}\omega_4^{-jk}\\ =&\dfrac14\sum_{j=0}^3a_j\sum_{k=0}^3\omega_4^{-jk}\sum_{i=0}^n\dbinom nis^i\omega_4^{ik}\\ =&\dfrac14\sum_{j=0}^3a_j\sum_{k=0}^3\omega_4^{-jk}(s\omega_4^k+1)^n\\ \end{aligned} \]

于是我们求出单位根这题就做完了。

3.二项式反演

3.0.概念

其实这玩意去年就想看……但是懒得学就咕了(
其实就是一个式子:\(f(n)=\sum\limits_{i=0}^n(-1)^i\dbinom nig(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(-1)^i\dbinom nif(i)\)
可以看出这个式子惊人地对称,证明可以用代数方法,也可以考虑组合意义(即交集的容斥)。
在应用中很少有直接是容斥形式的式子,更常用的是它的推论 \(f(n)=\sum\limits_{i=0}^n\dbinom nig(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(-1)^{n-i}\dbinom nif(i)\)\(f(k)=\sum\limits_{i=k}^n\dbinom ikg(i)\Leftrightarrow g(k)=\sum\limits_{i=k}^n(-1)^{i-k}\dbinom ikf(i)\)

3.1.例题

放到题目泛刷里了。

4.拉格朗日反演

4.0.概念

首先我们有多项式复合和复合逆的概念:\(F(G)=\sum\limits_if_iG(x)^i\)\(F\) 的复合逆 \(G\) 满足 \(F(G)=G(F)=x\)
首先我们有引理:对于幂级数 \(F\) 满足 \([x]F\ne0\),有 \([x^{-1}]F'F^k=[k=-1]\)
感性理解,\(k\ne-1\) 时 LHS 为 \((\dfrac{1}{k+1}F^{k+1})'\),它显然不会有 \(x^{-1}\) 这一项,而若 \(k=-1\)\([x^{-1}]\dfrac{F'}{F}=[x^0]\dfrac{F'}{F/x}\),它显然等于 \(1\)
接下来有拉格朗日反演公式:对于幂级数 \(F\) 满足 \([x]F\ne0\),设 \(G\) 为其复合逆,则 \(n[x^n]F^k=k[x^{-k}]G^{-n}\)
证明:由于 \(G\) 为复合逆,则

\[\begin{aligned} F^k(G)&=x^k\\ \sum_ii([x^i]F^k)G^{i-1}G'&=kx^{k-1}\\ [x^{-1}]\sum_ii([x^i]F^k)G^{i-1-n}G'&=[x^{-1}]kx^{k-1}G^{-n}\\ n[x^n]F^k&=k[x^{-k}]G^{-n} \end{aligned} \]

,证毕。
我们还有一个便于计算的扩展拉格朗日反演,即 \([x^n]H(F)=\dfrac1n[x^{n-1}]H'\left(\dfrac x{G}\right)^n\)(其中 \(H\) 为任意幂级数)。证明与朴素拉反类似,请读者自证。
有些情况下朴素拉反不再适用,如 \(n=0,k<0\),这时 EI 给出了另类拉格朗日反演:\([x^n]F^k=[x^{-k-1}]G'G^{-n-1}\)
证明依然与朴素拉反类似,留作习题。另类拉反也有类似扩展拉反的复合形式,即 \([x^n]H(F)=[x^n]HG'\left(\dfrac xG\right)^{n+1}\)

4.1.例题

试看看!
证明:\(\dfrac{1}{\sqrt{1-4x}}\left(\dfrac{1-\sqrt{1-4x}}{2x}\right)^m=\sum\limits_n\dbinom{2n+m}{n}x^n\)(来自营业日志 2020.5.9)。
由于见到了根号,考虑二叉树方程 \(F=x(1+F)^2\),它的根为 \(F=\dfrac{1-2x+\sqrt{1-4x}}{2x}\),代回上式即得 LHS 为 \(\dfrac{(1+F)^{m+1}}{1-F}\)
由另类拉格朗日反演,\([x^n]\dfrac{(1+F)^{m+1}}{1-F}=[x^n]\dfrac{(1+x)^{m+1}}{1-x}\left(\dfrac{x}{(x+1)^2}\right)'(x+1)^{2(n+1)}=[x^n](1+x)^{2n+m}=\dbinom{2n+m}{n}\)
证毕。
还有一道例题放到题目泛刷里了。

5.斯特林反演

5.0.概念

由斯特林数的反转公式有 \(f(n)=\sum\limits_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}g(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}f(i)\)

5.1.例题

暂时没有找到什么很板的题,先咕一会(

6.Bluestein 算法

6.0 概念

在循环卷积中利用 \(ij=\dbinom{i+j}2-\dbinom i2-\dbinom j2\) 的代换简化计算,还可以解决一类被称为 Chirp Z-Transform 的问题。

6.1 例题

洛谷 P5591 小猪佩奇学数学。
首先单位根反演草式子不是本节主题,我们只需要知道最后的目标是求 \(\sum\limits_{t=0}^{k-1}\sum\limits_{j=0}^{k-1}j(p\omega_k^t+1)^n\omega_k^{-tj}\)
带进去可以秒成 \(\sum\limits_{t=0}^{k-1}(p\omega_k^t+1)^n\omega_k^{\binom t2}\sum\limits_{j=0}^{k-1}j\omega_k^{\binom{j}2}\omega_k^{-\binom{t+j}2}\),里面就是一个差卷积了。

7.小技巧:扩域

7.0 概念

我们发现对于某些题目,有些中间的运算过程可能会超出题目要求的域(例如 \(\mathbb{F}_{998244353}\) 之类的),这时我们可以像扩充复数一样自然地临时扩充出一个新的域以便运算。
这个概念可能有点难懂,具体操作方式可以看下面的例题。

7.1 例题

[BJOI2019]勘破神机。
推式子不是主要内容,略去。但我们推出式子来之后会发现 \(\sqrt{5}\)\(\sqrt{3}\) 不存在(即 \(5\)\(3\)\(998244353\) 没有二次剩余),那么我们扩充一下扩充成 \(a+b\sqrt{5}\) 这种形式。
容易发现这种形式的「复数」也是满足各种运算律的,所以我们可以放心使用,而结果也一定是一个整数。

8.min-max 容斥

8.0 概念

\(\max_k(S)=\sum\limits_{T\subset S}(-1)^{|T|-k}\dbinom{|T|-1}{k-1}\min(T)\)
左边是第 \(k\) 大的值。
怎么证明呢?先假设我们不知道右边的,设 \(\max_k(S)=\sum\limits_{T\subset S}F(|T|)\min(T)\),这样来看总的贡献就是 \(\sum\limits_{i=1}^{p-1}\dbinom{p-1}{i}F(i+1)\),而根据要求我们希望这个玩意只在 \(p=k\) 时有贡献。
然后怎么着?演它啊!

\[\sum_{i=1}^p\dbinom{p}{i}F(i+1)=[p=k-1]\Leftrightarrow\\ F(p+1)=\sum_{i=1}^p(-1)^{p-i}\dbinom{p}{i}[i=k-1] \]

所以 \(F(p)=(-1)^{p-k}\dbinom{p-1}{k-1}\),原式得证。
这东西竟然对期望也是成立的。

posted @ 2021-05-27 10:45  ajthreac  阅读(182)  评论(0编辑  收藏  举报