- 扰动法
考虑将求和式收尾拆出来并对其和的形式找到对应方程。
- 求 (sum_{0leq k<n}kr^k)
等比数列求和即可。
- 求 (sum_{0leq k<n} k^m)
单独计算出 (i=m) 的值,往下递归即可。
- 求 (sum_{0leq k<n}k^m r^k)
同样手算出来 (k=m) 的部分即可暴力递归。
- 求 (sum_{1leq j<kleq n}frac{1}{k-j})
换元,用 (d=k-j,j+d=k)
二项式系数:
- 求 (sum_{0leq kleq m}inom{m}{k}/inom{n}{k})
平行求和得到 (=frac{m!(n-m)!}{n!}inom{n+1}{m})
- 求 (sum_{k=0}^n kinom{m-k-1}{m-n-1})
继续上指标求和。
- 求 (sum_{kleq n}inom{n-k}{k}(-1)^k)
- 求 (sum_k inom{n}{k}inom{s}{k}k)
- 求 (sum_{kge 0}inom{n+k}{2k}inom{2k}{k}frac{(-1)^k}{k+1})
生成函数:
常见幂级数:
定义复合:
若 ([z^0]F ot =0,) 只有 (G) 有限才可以定义。
复合逆:定义若 (Gcirc F=x,) 则 (G) 为 (x) 的左复合逆。同样定义右逆。
若 (F) 常数项是 (0) 且 (1) 次项为 (1) 则可以证明左右逆存在并相等。
求复合逆:拉格朗日反演。只能求单项。
给出两个反演柿子:
证明:待补
多项式除法:考虑做带余除法求出其商式和余式。
其中 (A,B) 已知。
带入 (x=x^{-1},) 并两边同时乘以 (x^n)
两边对 (x^{n-m+1}) 取模。由于 (deg(Q)=n-m) 所以上述柿子对 (Q) 保留信息完整,直接求逆即可。
ODE(常微分方程):
考虑计算一个复合 (h(F)) 的情况,可以求导构造方程。
例子:求 (G(F)=e^{F})
考虑 (G'=e^Fcdot F'=GF') 这里的右边就不再是复合而是卷积了。考虑对比系数有
就可以分治 NTT 了。
还有一些应用的例子:如求 ((1+x+x^2)^k) 求导之后可以线性计算。
还有:求 (F=sum_{i=0}^m frac{x^i}{i!}) 的 (F^{0cdots k}(mod x^n))
考虑求导 (F'(x)=F-frac{x^m}{m!},) 故而有:
展开柿子就可以递推了。
关于 微分有限 的定义:
若 (F) 满足 ODE :
则称其为 微分有限。
若 (p_i) 是 (O(1)) 次多项式, (k=O(1),) 就可以 (O(sqrt{n}log n)) 计算 ([x^n]F) 或者 (O(n)) 计算前 (n) 项。
一些微分有限的函数: (x^{alpha},ln x,e^x,) 超几何级数。
若 (f,g) 微分有限,则其和、卷积都微分有限。
若 (f) 微分有限,(g) 是代数的 则其复合 (fcirc g) 微分有限。
线性递推
生成函数(解析组合)
组合类:定义一个组合类 (mathcal{A}) 是一个有限集或可数集。对每一个元素又有一个大小 (|alpha|) 的定义。其非负且个数有限。
对应生成函数 (mathcal{A}(x)=sum_{alpha in mathcal{A}} x^{|alpha|})
这个地方是加法的形式。这里实际上是对上述所有情况求的并。
乘法(笛卡尔积) 对应于其元素大小相加。用乘法刻画
序列构造 SEQ
对于一个可数集 (mathcal{A},) 其序列构造的生成函数为:
注意:这里是把 整个组合集 的所有组合进行了序列构造。
注意一些理解:
SEQ 对应于 拼接组合对象的 顺序
意为:对于每一个组合对象都表示了一个固定位置的对象拼接。
比如对于 (d) 叉树的子树组合,对应乘起来的第 (i) 个就是第 (i) 棵子树的组合对象。
例子:
- 儿子有顺序的非空多叉树
含义:选择一个根,然后拼儿子
- 儿子有顺序的多叉树
含义:同上,注意其非空的时候拼上的儿子。
儿子不能是空的含义:由于本身 (T-1) 的生成函数中就可以选择空了,所以只要拼接就必须拼上非空的儿子
- 括号序列的生成函数
这里和上述非空儿子有顺序多叉树的生成函数一样。
- CF755G
设 (f_{i,j}) 为前 (i) 个球划分了 (j) 组的方案数,对于一个球,我们可以选或不选,选的情况又对应两个一组或者一个一组,设其生成函数为 (F(x,y)=sumsum f_{i,j}x^iy^j,) 答案就是 ([x^ny^k]F(x,y))
考虑应用 SEQ的含义,简记上述生成函数为 (F,) 则有:
其中,(x) 计量前多少个球,(y) 计量划分成几组。
那么其组合意义可以解释为:如果 (x) 没有被选择,那当前 (F) 中所有 (y) 项不变;如果它被单独划分为一组,那所有 (y) 都会平移一位;而如果它和它前一个球一起被划分成一组,那 (y) 就需要平移两个位置了。或者说对应那个位置的点值由这一位转移过去。
- 求 01 序列,(0) 的连续段长度 (leq k-1) 的方案数。
考虑对本质进行划分,其必然可以表示为一个 (1) 后面拼接若干不超过 (k-1) 个 (0,) 但其开头可以是不超过 (k-1) 个 (0.) 记录一个单位长度为 (Z,) 则其生成函数为:
括号前面是考虑拼接了几个 (0,) 后面是考虑拼接了多少段 (1000cdots)
幂集
定义:全部子集
对于组合类 (mathcal{A},) 其幂集组合类记为 ( ext{PSET}(mathcal{A}))
考虑枚举每一个元素是否存在,则容易得到:
意义很简单,就是不选对应 (1,) 选就对应其元素大小,然后乘在一起。
那么就可以对其取 (ln) 再逆回去:
其中 (i) 是元素大小,(A_i) 是大小为 (i) 的元素有多少个。
继续:
其中 (A(z)) 是 (A_i) 的生成函数。
多重集
实际上就是上述幂集每一个元素不再只是选或不选了,变成可以选择无数个了。也就自成了 SEQ 对应每一个位置有序
按照上面推:
- 非空无标号有根树生成函数
组合意义:考虑先上一个根,然后观察其儿子特点,其儿子的数目不限,大小也不限。那么 (T) 本质上对于节点数为 (i) 的非空无标号有根树计数,那我直接将 (T) 进行 ( ext{MSET}) 即多重集选取即可。这里也注意一下儿子没有顺序,所以子树大小也是没有顺序的,直接按从小到大选择即可,对应了上述的 多重集。
复合
考虑两个组合类复合的意义 (Acirc B),实际就是把 (A) 的元素的单位大小替换为 (B.)
例子 CF438E
考虑有根无标号二叉树区分左右儿子的生成函数:
那么现在考虑对单点进行复合权值的操作,其对应生成函数为:
然后求 (T(W(x))) 即可。
EGF
这样表示实际上是为了把二项卷积变成普通卷积
对应有标号计数
通常有标号计数都比无标号简单,因为有标号没有那么多等价类需要判重
它的运算对应:( ext{SET})
集合 (SET)
考虑把一个有标号组合类组合成大小不定集合的方案数。注意这里是集合,考虑先用 ( ext{SEQ}) 运算组合后去重。
观察到,( ext{SEQ}) 组合实际上是对应一个大小为 (L) 的集合算了 (L!) 遍,实际上集合只能算一遍。因为 ( ext{SEQ}) 对应顺序计数,在有标号情况下其对应计算了所有的排列可能。
所以对应 ( ext{SET(x)}=sum_{ige 0}frac{A^i}{i!}x^i=exp(A))
- 有标号非空有根树计数
考虑把一个根塞到一堆有根非空有标号森林里面形成一棵树。
那么,森林计数就是相当于求了 (T) 的一个集合。注意 ( ext{SET}) 运算也对应着 有标号。
于是, (T=xexp(T))
- 错排的 EGF
考虑错排本质如何划分:其对应了若干置换环。
注意错排本身是带标号的。
那么错排本质就是找一堆环组成排列,并且环的大小至少为 (2.)
考虑关于环大小的 (EGF:)
接下来考虑关于错排的组合:实际上是所有大小非 (1) 的环的组合,即
- 有标号连通图计数
考虑有标号图计数。
图是由许多连通图组合而成的,对上式取 (ln) 即可。
- 有标号仙人掌计数