多项式 $ \textbf{Polynomials} $

多项式定理

定义为:

\[(\sum^{k}x_i)^n=\sum_{\sum n_i=n}^{k=0}\begin{pmatrix}n\\ n_1,n_2,\cdots,n_k\end{pmatrix}\prod x_i^{n_i} \]

其中:

\[\begin{pmatrix}n\\ n_1,n_2,\cdots,n_k\end{pmatrix}=\frac{n!}{\prod n_i!} \]

它的具象解释是从 \(n\) 个球中,依次取出 \(n_1,n_2,\cdots,n_k\) 个球(不放回)的总方案数。

广义二项式定理 $ \tiny\textbf{Generalized Binomial Theorem} $

由于做题时可能会出现形如 $ (ax+by)^\alpha,\alpha \in \mathbb{R} $ 形式的多项式,对于此种多项式,我们没有办法用普通的二项式定理进行展开,为此,我们引入广义二项式系数与广义二项式定理:

广义二项式系数:

\[\begin{pmatrix} \alpha \\ k \end{pmatrix}=\frac{\alpha(\alpha-1)\cdots(\alpha-k-1)}{k!}=\frac{\alpha^{\underline{k}}}{k!},\alpha \in \mathbb{R},k \in \mathbb{N} \]

广义二项式定理:

\[(x+y)^\alpha=\sum_{k=0}^\infty\begin{pmatrix}\alpha\\k\end{pmatrix}x^{\alpha-k}y^k \]

有了以上两个定义,我们就可以很轻松地对 $ \frac{1}{1-x},\frac{1}{1-x^{114514}} $ 等等二项式进行展开了。

求广义二项式系数时,我们可能会遇到上为分数,下为整数的情况。通常,化简时会用到双阶乘:

\[\alpha!! = \begin{cases}1\times3\times5\times\cdots\times\alpha,\ \alpha\ 为奇数\\2\times4\times6\times\cdots\times\alpha,\ \alpha\ 为偶数\end{cases} \]

简而言之,一个正整数的双阶乘就是不超过这个正整数且与它有相同奇偶性的所有正整数乘积

生成函数 $ \tiny\textbf{Generating Function} $

本文将会提及的生成函数分为两种:普通型生成函数指数型生成函数

普通型生成函数 $ \Tiny\textbf{Ordinary Generating Function} $

普通型生成函数,简称 OGF。一个数列 $ A(x) $ 的 OGF 定义为:

\[F(x) = \sum_{n} A(n)x^n \]

指数型生成函数 $ \Tiny\textbf{Exponential Generating Function} $

指数型生成函数,简称 EGF。一个数列 $ A(x) $ 的 EGF 定义为:

\[\hat{F}(x) = \sum_{n} A(n)\frac{x^n}{n!} \]

常见的 EGF 可以化简(其实就是 \(e^x\) 的泰勒展开式的各种结合):

\[1+x+\frac{x^2}{2!}+\cdots=e^x \]

\[1+\frac{x^2}{2!}+\frac{x^4}{4!}+\cdots=\frac{e^x+e^{-x}}{2} \]

\[x+\frac{x^3}{3!}+\frac{x^5}{5!}+\cdots=\frac{e^x-e^{-x}}{2} \]

一般来说,若题设中要求无标号计数,则用 OGF,否则用 EGF。

$ \text{Examples}: $

P2000 拯救世界

把两个人的十条序列写出 OGF,乘在一起,得到:

\[\frac{(n+1)(n+2)(n+3)(n+4)}{24} \]

用 FFT 或 NTT 求出即可。

P2012 拯救世界2

注意到题面中描述的是“基因序列”,应是有序的,所以写出 EGF 得:

\[\frac{e^{12x}-4e^{8x}+6e^{4x}-4+e^{-4x}}{256} \]

最后取 \(n\) 次项系数即可,注意算出 EGF 时分母有 \(n!\),所以取系数时乘回去,得到:

\[\frac{12^n-4\times 8^n+6\times 4^n-(-4)^n}{256}\ \text{mod} \ 10^9 \]

生成函数还可以用来求数列的通项公式,如 Fibonacci 数,Catalan 数等经典数列。

多项式操作 $ \tiny\textbf{Polynomial Operations} $

多项式求逆

定义:若一个多项式 $ B(x) $ 为另一个多项式 $ A(x) $ 的逆,则:

\[AB=1, \sum_{i=0}^nA_iB_{n-i}=[n=0] \]

推得:

\[B_n=-\frac{1}{A_0}\sum_{i=1}^nA_iB_{n-i} \]

递推求解。

多项式求 ln

定义:若一个多项式 $ B(x) $ 为另一个多项式 $ A(x) $ 的模 $ x^n $ 意义下的 ln,系数对质数取模,则:

\[B(x)\equiv\ln A(x) \]

其中,$ \ln A(x) $ 比较不好理解,为此,我们对多项式两边求导得到:

\[B'(x)=\frac{A'(x)}{A(x)} \]

移项:

\[B'(x)A(x) = A'(x) \]

推出:

\[B_{n+1}=\frac{A_{n+1}(n+1)-\displaystyle\sum_{i=1}^{n}iB_{i}A_{n+1-i}}{(n+1)A_0} \]

可以用 FFT 求。

多项式 exp

定义:若一个多项式 $ B(x) $ 为另一个多项式 $ A(x) $ 的模 $ x^n $ 意义下的 exp,系数对质数取模,则:

\[B(x)\equiv\exp(A(x))\equiv e^{A(x)} \]

同样地,因为 $ e^{A(x)} $ 很难看,所以先对两边取 ln 再求导:

\[B'(x)=B(x)A'(x) \]

推出:

\[B_{n+1}=\frac{1}{n+1}\sum_{i=0}^{n}B_{n-i}A_{i+1}(i+1) \]

$ \text{Examples}: $

(基环树计数)求包含 \(n\) 个顶点,\(n\) 条边的连通无向图有多少个。每个点带标号。不允许重边与自环。

根据 Cayley 定理,\(n\) 个点有标号有根树数量为 \(n^{n-1}\),所以每棵树的 EGF 为:

\[A(x)=\sum_{n\ge 1}\frac{n^{n-1}x^n}{n!} \]

所以答案的生成函数,\(k\) 为环的大小:

\[\begin{aligned}F(x)&=\frac{1}{2}\sum_{n\ge 3}\frac{A^k(x)}{k}\\&=-\frac{1}{2}\ln(1-A(x))-\frac{A(x)}{2}-\frac{A^2(x)}{4}\end{aligned} \]

FFT 或 NTT 求出 \(\ln(1-A(x))\)\(A^2(x)\),时间复杂度 \(O(n\log n)\)

posted @ 2024-05-05 17:59  Cuset_VoidAldehyde  阅读(91)  评论(0)    收藏  举报