8.13.13 ACM-ICPC 多项式与生成函数:普通生成函数
普通生成函数简介
普通生成函数(Ordinary Generating Function,OGF)是组合数学和计算机科学中的一个强大工具,尤其在像ACM-ICPC这样的竞赛编程背景下。序列 aaa 的普通生成函数定义为形式幂级数:
F(x)=∑nanxnF(x) = \sum_{n} a_n x^nF(x)=∑nanxn
其中,aaa 可以是有限序列,也可以是无限序列。常见的例子(假设 aaa 以0为起点):
换句话说,如果序列 aaa 有通项公式,那么它的普通生成函数的系数就是通项公式。
普通生成函数的基本运算
加法与减法
考虑两个序列 aaa 和 bbb 的普通生成函数分别为 F(x)F(x)F(x) 和 G(x)G(x)G(x)。那么有:
因此,F(x)±G(x)F(x) \pm G(x)F(x)±G(x) 是序列 〈an±bn〉\langle a_n \pm b_n \rangle〈an±bn〉 的普通生成函数。
乘法(卷积)
对于乘法运算