World_Creater‘s Blog

Alpha1022 生成函数

World Creater 2024-03-27, 19:45:44 1.6k 隐藏左右两栏 展示左右两栏

GF 相关

OGF

无穷序列 aa 的 OGF 为 F(x)=k0akxkF(x)=\sum\limits_{k\geq 0}a_kx^kxx 为占位符,没有实际意义,但可以用于分析 OGF 的敛散。

[xn]F(x)=an[x^n]F(x)=a_n

如果将 aa 看作一个背包序列,则其组合意义为选出和为 kk无标号元素方案数为 [xk]F(x)[x^k]F(x)

这个形式幂级数的形式可以从代数意义上探究组合对象的性质。

可以定义 OGF 加法,减法,卷积,对应在 aa 上的加法,减法,卷积。

OGF 卷积的组合意义为合并两个背包。

OGF 可以写出封闭形式,将无穷项的级数写成有限项的多项式(分式),而不丢失组合上的性质,这可以方便维护。

  • F(x)=k0xk=11xF(x)=\sum\limits_{k\geq 0}x^k=\dfrac{1}{1-x}
    考虑 xF(x)+1=F(x)xF(x)+1=F(x),解方程即可。
    从卷积角度入手可以说明卷上一个 11x\dfrac{1}{1-x} 的组合意义是对 OGF 做前缀和,卷上 1x1-x 的组合意义是对 OGF 差分。
    同理可以得到 F(x)=k0ckxk=11cxF(x)=\sum\limits_{k\geq 0}c^kx^k=\dfrac{1}{1-cx}
  • F(x)=k0(αk)xk=(1+x)αF(x)=\sum\limits_{k\geq 0}\binom{\alpha}{k}x^k=(1+x)^{\alpha}
    广义二项式定理。
  • F(x)=k0(n+k1n1)xk=1(1x)nF(x)=\sum\limits_{k\geq 0}\binom{n+k-1}{n-1}x^k=\dfrac{1}{(1-x)^n}
    考虑操作实际意义为对杨辉三角第一列做 nn 次前缀和,套用组合数列前缀和的性质我们可以说明其为第 nn 列杨辉三角值。

也可以由封闭形式反推展开形式得到通项。

形如 A1Bx\dfrac{A}{1-Bx} 的 OGF 容易得到其展开形式为 Ak0BkxkA\sum\limits_{k\geq 0}B^kx^k,通项为 an=ABna_n=AB^n,若干形如这种形式的项加起来也同理。对于不满足这种形式的 OGF,考虑通过分式分解的方法转成这个形式然后展开。

考虑斐波那契数列,Fn=Fn1+Fn2F_n=F_{n-1}+F{n-2} 容易写出其封闭形式的生成函数:

F(x)=xF(x)+x2F(x)+xF(x)=xF(x)+x^2F(x)+x

F(x)=x1xx2F(x)=\dfrac{x}{1-x-x^2}

考虑待定系数,我们断言其可以被分解为 A1ax+B1bx\dfrac{A}{1-ax}+\dfrac{B}{1-bx} 解出待定系数方程可以得到:

{A=15a=1+52B=15b=152\begin{cases} A=\dfrac{1}{\sqrt{5}}\\ a=\dfrac{1+\sqrt{5}}{2}\\ B=-\dfrac{1}{\sqrt{5}}\\ b=\dfrac{1-\sqrt{5}}{2}\\ \end{cases}

然后就可以得到斐波那契通项公式:

Fn=(1+52)n(152)5F_n=\dfrac{\bigg(\dfrac{1+\sqrt{5}}{2}\bigg)^n-\bigg(\dfrac{1-\sqrt{5}}{2}\bigg)}{\sqrt{5}}

这里有些惊人的,与递推式的特征方程相关的性质,但是我不会。

EGF

无穷序列 aa 的 EGF 为 F(x)=k0akxkk!F(x)=\sum\limits_{k\geq 0}\dfrac{a_kx^k}{k!}

这个除以 k!k! 可以这么理解:aka_kkk 有标号元素组合的方案数,因此除掉 k!k! 在 EGF 内部就不考虑顺序了,这样可以应用幂级数的相关代数性质。因此 EGF 用于维护有标号集合

同样可以定义 EGF 的加减法,而卷积在 akk!\dfrac{a_k}{k!} 上为普通卷积,在 aka_k 上为二项卷积。这也说明了 EGF 和乘法的组合意义。

EGF 极其关键的性质是 \e^x=\sum\limits_{k\geq 0}\dfrac{x^k}{k!}。这是 \e^x 的泰勒展开,其组合意义为将 xx 这个有标号组合体自由组合得到的 EGF(枚举个数然后组合,再考虑内部的顺序)。

考虑贝尔数的 EGF,选出一个大小为 xx 的有标号非空集合 EGF 为 \e^x-1,再自由组合为 \e^{\e^x-1}

考虑第二类斯特林数的 EGF,相当于只能自由组合 kk 次了,那么为 (\e^x-1)^k

考虑一个有 mm 种颜色的序列,每种颜色的 EGF 为 Fi(x)F_i(x),那么用这 mm 种颜色排出一个长为 nn 的序列的方案数为 [xnn!]i=1mFi(x)[\dfrac{x^n}{n!}]\prod\limits_{i=1}^m F_i(x)。这说明可以用 EGF 的乘积来从每种颜色的方向刻画序列方案数(有标号 SEQ 构造是吧)。

城市规划

有标号无向连通图计数,n1.3×105n\leq 1.3\times 10^5

可以半在线卷积优化朴素的容斥 DP 做到 O(nlog2n)\mathcal{O}(n\log^2n)

换种做法,设有标号无向连通图的 EGF 为 F(x)F(x),有标号无向一般图的 EGF 为 G(x)G(x),因为一般图可以视作连通分量的带标号自由组合,因此有 expF=G\exp F=G,即 F=lnGF=\ln G。而 G 显然就是枚举每条边是否出现乘起来,可以线性计算。

只需要一次 ln\ln,复杂度 O(nlogn)\mathcal{O}(n\log n)

考虑 ln\ln 可以作为图 EGF 的连通化函数,exp\exp 可以作为图 EGF 的去连通化(自由组合函数)。

有标号二分图计数

字面意思。

n105n\leq 10^5

考虑枚举左右部点,中间自由连边,方案数为 i=0n(ni)2i(ni)\sum\limits_{i=0}^{n}\binom{n}{i}2^{i(n-i)}

但是这样会算重,因为一个连通块分配左右部点可以有两种方案。

我们设这个东西 EGF 为 GG,最终答案的 EGF 为 FF,先 ln\ln 得到连通方案数,然后乘个 12\dfrac{1}{2} 来使得每个连通块方案为一,最后 exp\exp 一下自由组合回去,因此就有 F=exp(12lnG)=GF=\exp(\dfrac{1}{2}\ln G)=\sqrt{G}

只需要算开根,时间复杂度 O(nlogn)\mathcal{O}(n\log n)





本文作者:World Creater

本文链接:http://worldcreaterwc.github.io/NFLS2024-327-md/

版权声明:本博客中所有原创文章除特别声明外,均允许规范转载,转载请注明出处。所有非原创文章,按照原作者要求转载。


By World Creater.
其他物件杂物收纳
Hitokoto

World Creater 说,除了她以外的人都很强!嘤嘤嘤~~
博客信息
文章数目
13
最近更新
12-19
本站字数
15.2k
文章目录