网课-组合数学学习笔记
Preface
“用组合意义刻画左右两边,然后发现左右两边讲的是同一个东西。”
“一堆括号乘起来,相当于每个括号里挑一个乘起来,再相加。”
处理求和问题的技巧:当遇到瓶颈时,试着调换
的顺序是一个好办法。
加法、乘法原理
-
加法原理:同一步之间
-
乘法原理:不同步之间
排列
组合
又称二项式系数。
下降幂
从组合意义上考虑,下降幂和排列数实际是一样的:在
《具体数学》中是通过和普通幂函数
此时
据下降幂定义的广义二项式系数:对于实数
有时候如果
组合数基本公式
对称公式:
加法公式:
吸收公式(用于求和):
三项恒等式:
组合意义:左边代表在
组合数求和
- 上指标求和:
代数推导:可使用数归法证明。
组合意义:右边代表在
- 平行求和:
代数推导:运用对称公式可将平行求和转化为上指标求和。
组合意义:右边代表在
二项式定理
代入
- 广义二项式定理:对于任意实数
,有
注意到如果
这个的证明在学了 泰勒级数 后是相当显然的。
-
下降幂的二项式定理:对于任意实数
和非负整数 ,有
可使用数学归纳法求证。
范德蒙德卷积
- 范德蒙德卷积恒等式:
组合意义:左边代表
生成函数:令
- 上指标范德蒙德卷积恒等式:
组合意义:右边表示在
生成函数:等式右侧为
Lucas 定理
什么时候使用 Lucas 定理?
-
P4345 [SHOI2015] 超能粒子炮·改:Lucas 定理常常结合数位 DP 或递归解决。
隔板法
把一个有
如果隔板法的每个间隔有下界(下界可以不同,但是第几个间隔的下界是多少必须固定),可以先把下界总数从
P5520 [yLOI2019] 青原樱:可将树看作隔板。
环排列
多重集排列数
错位排列
排列上每个位置的数和其下标的值都不一样。
思路主要是将数值
P4921 [MtOI2018] 情侣?给我烧了!(头好晕,回头来看。)
卡特兰数
递推式(枚举第一个括号对内部括号数量):
组合数:
第二类斯特林数
普通幂转下降幂:
组合意义:左侧为用
-
例一:
其中
。使用第二类斯特林数将普通幂转为下降幂,再将下降幂转为组合数,使用上指标求和。
-
例二:P6620 [省选联考 2020 A 卷] 组合数问题
这道题推式子有两点巧妙。一是通过调换
顺序把下降幂与多项式系数分离,二是最后二项式定理容易瞪不出来。
鸽巢原理
把
个球放入 个盒子中,则至少一个盒子里有 个球,至少有一个盒子里有 。
- Kuroni and Impossible Calculation:这道题等价于将
个球放入 个盒子内。如果有 ,则必定存在一个盒子内有超过两个球,答案则必等于 0。其余情况即 暴力即可。
Prufer 序列
一个值域为
由树构造 Prufer 序列:每次选标号最小的叶子节点,删去,并记录它所相连的节点。直到只剩两个节点。可以用堆维护。
由 Prufer 序列构造树:每个点的度数为在 Prufer 序列中出现次数
结论:
一些树的组合计数问题可以转化为 Prufer 序列的组合计数问题求解。
-
例一:
Burnside 定理
基本容斥
“当我们需要计算不满足条件
显然
-
P1450 [HAOI2008] 硬币购物:限制是每种硬币的个数,用硬币使用没有任何限制的方案数用容斥减去有硬币超过的。
-
再谈错排:限制是值和下标不相等。
-
Another Filling the Grid:部分直接使用限制条件,其余限制使用容斥。
-
求
个点的有标号 DAG 个数,其中 :并没有听懂。 -
P5664 [CSP-S2019] Emiya 家今天的饭:此题的引入部分用到一点容斥,即计算每种菜品超过一半的方案数,而又因为只可能同时有一种菜品超过一半,计算并不为
级别。真正巧妙之处在 DP 方程剔除无关状态。
容斥
(感觉上面的证明有点问题,应该只有在
如果我们要通过
-
P5643 [PKUWC2018] 随机游走:这道题的用
容斥转为正常期望 dp 后,时间复杂度为 。如果想要让时间复杂度更低,需要使用高维前缀和(在 这篇博客 中阐释得还清楚,它尤其在求二进制子集的和时使用)。
二项式反演
主要用于
更具体地说,二项式反演的题目中
-
集合计数:我觉得一大难点在看出来所谓
,即“钦定了 个元素在交集里的方案数”是很好求的(这是一个任选若干集合的问题);另一大是在推导 和 的关系时。 -
P4859 已经没有什么好害怕的了:这个和上一道题是一样的构造方法。
-
扩展
容斥:通过二项式反演给每个 添上系数,扩展到第 小的 容斥。
普通生成函数(OGF)
生成函数是一个很美妙的东西。它在代数与组合数学之间建立了联系,并且将一些复杂的组合问题巧妙地化为了代数问题。
这是生成函数的一种,被称为 OGF(普通生成函数)。
根据定义可以发现,序列相加则对应生成函数相加,序列做数乘则对应生成函数做数乘。换句话说,如果我们定义一个以序列为参数、以其生成函数为返回值的函数,那么该函数将会是一个线性函数。然而,生成函数相乘将遵循多项式乘法的规则,这时生成函数相乘就不等同于序列对应项相乘了。
当该多项式存在无穷项时,我们也可以称其为形式幂级数环。虽说是无穷项,但其实很多的形式幂级数环都可以通过相减法、微积分等方法化为封闭形式。很美妙不是么——看上去无穷的函数其实可以那么简洁地表示出来。
-
例一:等比数列
等比数列的形式幂级数环为:
,而 ,二者相减得到 ,故而 。
(图例:数列 的生成函数和它的封闭形式) -
例二:斐波那契数列
斐波那契数列的形式幂级数环为:
。在等式 两侧乘上 、并对该方程求和,则有 ,等同于 ,于是可得: 。 -
例三:差为
的等差数列该数列的形式幂级数环为:
。在等式 两侧乘上 ,并……(后面和斐波那契的做法是一样的)……最终得到 。
以下是一些常见数列(形式幂级数)的封闭形式:
(其中后三个的证明都需要用到 泰勒展开 或广义二项式定理)
那么把一个形式幂级数环大费周章化为封闭形式有什么用呢?举个例子,在一个题目中,你想要求一些形式幂级数环的卷积的通项公式。你就可以先求得这些形式幂级数环的封闭形式,然后用它们的封闭形式相乘,得到它们卷积的封闭形式。接着,你就可以将这个卷积的封闭形式拆分为若干较为简单的函数之和。由于你知道这些简单函数所对应的形式幂级数环是什么,你就可以得到这个卷积的形式幂级数环,也就得到了卷积对应序列通项公式。卡特兰数的通项公式就是这么得到的。
生成函数的一大用处是刻画组合问题。一般来说,我们把一些个数限制刻画为函数中
-
例一:
-
例二:
(背包问题):有
种物品,第 种物品有 个,每个代价为 元。求花了 元的方案数。这个的生成函数应该是
,答案为 。与前一个问题不同的地方在于,背包问题是一种中仅能选一个,所以我们选择将同一种物品的不同次幂归在一个括号内;而前一个问题则是若干种都能选任意次,因此将每个种归在一个括号内,求同一个括号的次幂即可。
指数生成函数(EGF)
指数生成函数又称 EGF。与前面提到的 OGF 是相对的。
《具体数学》是这么解释引入 EGF 的原因的:当原数列
-
:这个对 进行一个换元为 ,再根据 的封闭形式为 ,就可以相当容易地证得。 -
:它的 EGF 显然为一个二项式定理的展开形式。 -
:因为生成函数的加法等同于对应序列的加法,这里可以看作将 的项减去了。
EGF 主要用于刻画若干种数的排列问题。详见排列组合一题。
-
这道题揭示了用 EGF 刻画的本质:将组合数进行拆解,即可将 OGF 转化为 EGF。答案则通过乘上
将 EGF 还原为 OGF。 -
例二:
列出绿色、红色、蓝色的 EGF,将这三个 EGF 相乘,得到答案的 EGF,即可得到答案的通项公式。
-
再谈二项式反演:
多项式 exp / 多项式 ln
-
多项式 exp
“良定义”即能在有限的求和内求出每一项的值,尽管原本的式子是个无限求和。
为什么一定要在
的条件下呢?当 时,最低的次项为 ;此时如果你想要拼凑出次数为 的项,在每一次都选 的情况下,你最多仅能选 次,即有效的 ;反之,当 时,就绝对拼凑不出 项。而当 时,由于能够选到 , 也就可以拼凑出 ,这个运算也就不良定义了。 -
多项式 ln
至于怎么证明
的形式幂级数环是这个,需要用到 微积分。
说来这两个东西本身有什么用呢?我们可以考虑
组合意义是钉死了的。所以这么看来多项式 exp / 多项式 ln 的应用范围是比较狭窄的。
-
P4841 [集训队作业2013] 城市规划:令
表示 个点的简单有标号无向连通图的数目, 表示 个点的简单有标号无向图的数目。由上面的推导,容易证明: ,于是直接用多项式 计算 即可。 -
多项式 exp / 多项式 ln 的
计算方法:见 多项式乘法(FFT)学习笔记
点值表示与下降幂表示
用人话阐释一遍这个定理:对于一个多项式,它的点值表示的 EGF,与它的下降幂表示的生成函数,满足一个类似前面二项式反演的关系。
这玩意儿只能说是相当的怪异。但它提供了一种在点值表示和下降幂表示之间互化的思路。
-
首先如果我们已经有了这两个多项式的系数,我们就可以通过二项式定理得到某一个
的系数的方程,很容易求解 。然后因为下降幂也有二项式定理,我们只需要套前面的式子,求出下降幂表示就行了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下