AIGC标识 离散与组合数学

离散与组合数学讲义

覆盖计数原理与组合恒等式、鸽巢原理、递推与生成函数、特殊计数序列、格路计数与 LGV 引理、图论计数、偏序集与匹配理论中的经典定理。
建议课时:4 课时(180 分钟)。前置:组合数取模、基本 DP。


0. 课前引入

问题 1:把 10 个相同的球放进 4 个不同的盒子,每盒至少一个,有多少种?

问题 2:一个 \(n \times n\) 网格从左下走到右上,只能向上向右,且不能越过对角线,有多少条路径?

问题 3:有 \(n\) 个有标号的点,能构成多少棵不同的树?

问题 4:一个偏序集里,最少要用多少条链才能覆盖所有元素?

答案分别是 \(\binom{9}{3} = 84\)、卡特兰数 \(C_n\)、\(n^{n-2}\)、最长反链的长度。四个问题分别对应本讲的隔板法、格路计数、Prüfer 序列、Dilworth 定理。组合数学的特点是每个结论都短,但背后都有一个漂亮的"看问题的角度"。本讲重点讲角度,不只讲公式。


1. 计数原理与组合恒等式

1.1 基本模型

模型 公式 说明
\(n\) 个不同元素全排列 \(n!\)
从 \(n\) 个选 \(k\) 个排列 \(n^{\underline{k}} = \dfrac{n!}{(n-k)!}\)
从 \(n\) 个选 \(k\) 个组合 \(\dbinom{n}{k}\)
多重集排列 \(\dfrac{n!}{n_1!\,n_2!\cdots n_k!}\) \(n_i\) 个第 \(i\) 类相同元素
圆排列 \((n-1)!\) 旋转等价
项链排列 \(\dfrac{(n-1)!}{2}\) 旋转 + 翻转等价,\(n \ge 3\)
可重复选取 \(\dbinom{n+k-1}{k}\) 从 \(n\) 种中选 \(k\) 个,可重复

1.2 隔板法

\(x_1 + x_2 + \cdots + x_k = n\) 的解数:

  • 正整数解:\(n\) 个球排成一排,\(n-1\) 个空隙插 \(k-1\) 块板:\(\dbinom{n-1}{k-1}\)。
  • 非负整数解:每个 \(x_i\) 加 1 转化为正整数:\(\dbinom{n+k-1}{k-1}\)。
  • 有下界 \(x_i \ge a_i\):先减去 \(a_i\),转化为非负。
  • 有上界 \(x_i \le b_i\):容斥,见容斥讲义 1.5 硬币购物。

1.3 必会恒等式

名称 恒等式 组合意义
对称 \(\dbinom{n}{k} = \dbinom{n}{n-k}\) 选谁 = 不选谁
吸收 \(k\dbinom{n}{k} = n\dbinom{n-1}{k-1}\) 选 \(k\) 人再选队长 = 先选队长再选 \(k-1\) 人
加法 \(\dbinom{n}{k} = \dbinom{n-1}{k} + \dbinom{n-1}{k-1}\) 第 \(n\) 个元素选或不选
Vandermonde \(\sum_i\dbinom{m}{i}\dbinom{n}{k-i} = \dbinom{m+n}{k}\) 两组人中共选 \(k\) 个
上指标求和 \(\sum_{i=0}^{n}\dbinom{i}{k} = \dbinom{n+1}{k+1}\) 枚举最大元素
平行求和 \(\sum_{i=0}^{n}\dbinom{r+i}{i} = \dbinom{r+n+1}{n}\) 上式换形
二项式定理 \(\sum_k\dbinom{n}{k}x^k = (1+x)^n\)
交错和 \(\sum_k(-1)^k\dbinom{n}{k} = [n=0]\) 容斥的基石
平方和 \(\sum_k\dbinom{n}{k}^2 = \dbinom{2n}{n}\) Vandermonde 特例
加权和 \(\sum_k k\dbinom{n}{k} = n2^{n-1}\) 吸收 + 二项式

讲课提示:每个恒等式都让学生用"讲故事"的方式说一遍组合意义。能讲故事的恒等式不用背。

1.4 组合证明三板斧

  1. 双射:构造两个集合之间的一一对应。
  2. 算两次:同一个集合按两种方式计数。
  3. 生成函数:比较系数(第 3 节)。

例:证明 \(\sum_{k}\binom{n}{k}^2 = \binom{2n}{n}\)。
算两次:\(2n\) 个人选 \(n\) 个。按"前 \(n\) 人中选了 \(k\) 个"分类,后 \(n\) 人中选 \(n-k\) 个,\(\binom{n}{k}\binom{n}{n-k} = \binom{n}{k}^2\)。

1.5 例题:洛谷 P2822 [NOIP2016] 组合数问题

求 \(\binom{i}{j}\) 中有多少个是 \(k\) 的倍数(\(i \le n\),\(j \le \min(i, m)\))。用加法公式递推 \(\binom{i}{j} \bmod k\),再二维前缀和。杨辉三角递推是模意义下算组合数最保险的方法,不需要逆元。


2. 鸽巢原理与极值原理

2.1 鸽巢原理

\(n+1\) 个物体放进 \(n\) 个盒子,至少有一个盒子有 2 个。推广:\(kn+1\) 个物体放进 \(n\) 个盒子,至少有一个盒子有 \(k+1\) 个。

2.2 经典应用

例 1:任意 \(n\) 个整数中,存在若干个连续的数,其和被 \(n\) 整除。
前缀和 \(s_0, s_1, \dots, s_n\) 共 \(n+1\) 个,模 \(n\) 只有 \(n\) 种余数,必有两个同余,相减即得。

例 2(Erdős–Szekeres):任意长度为 \(mn+1\) 的实数序列,存在长 \(m+1\) 的递增子序列或长 \(n+1\) 的递减子序列。
对每个位置记 \((a_i, b_i)\) = 以 \(i\) 结尾的最长递增 / 递减长度。若都不超过 \((m, n)\),只有 \(mn\) 种取值,但 \(mn+1\) 个位置两两不同(前面的位置总能扩展后面的一个)。矛盾。

例 3:\(1..2n\) 中任取 \(n+1\) 个数,必有两个互质。
分成 \(\{1,2\},\{3,4\},\dots\) 共 \(n\) 组,必有两个在同一组,相邻整数互质。

2.3 极值原理

"考虑最大 / 最小的那个"。证明存在性时经常与鸽巢配合。

例:竞赛图(任意两点恰有一条有向边)必有哈密顿路径。取最长路径,若有点不在其中,用极值性导出矛盾。


3. 递推关系与生成函数

3.1 线性递推的特征根法

\(a_n = c_1 a_{n-1} + c_2 a_{n-2}\)。特征方程 \(x^2 = c_1 x + c_2\),根 \(r_1, r_2\):

  • 不同根:\(a_n = A r_1^n + B r_2^n\)
  • 重根:\(a_n = (A + Bn) r^n\)

\(A, B\) 由初值确定。斐波那契:\(r = \dfrac{1 \pm \sqrt5}{2}\),\(F_n = \dfrac{1}{\sqrt5}\left(\varphi^n - \psi^n\right)\)。

竞赛中大 \(n\) 一般用矩阵快速幂,特征根法主要用于推闭式。

3.2 普通生成函数(OGF)

序列 \(\{a_n\}\) 的 OGF 是形式幂级数 \(A(x) = \sum_n a_n x^n\)。不关心收敛,只关心系数。

序列 OGF
\(1, 1, 1, \dots\) \(\dfrac{1}{1-x}\)
\(1, 2, 3, \dots\) \(\dfrac{1}{(1-x)^2}\)
\(\dbinom{n+k-1}{k-1}\) \(\dfrac{1}{(1-x)^k}\)
\(\dbinom{m}{n}\) \((1+x)^m\)
\(c^n\) \(\dfrac{1}{1-cx}\)
斐波那契 \(\dfrac{x}{1-x-x^2}\)
卡特兰数 \(\dfrac{1-\sqrt{1-4x}}{2x}\)

运算对应:

  • \(A(x) + B(x)\):逐项相加
  • \(A(x) \cdot B(x)\):卷积 \(c_n = \sum_k a_k b_{n-k}\)
  • \(x A(x)\):右移一位
  • \(A'(x)\):\(n a_n\) 左移
  • \(\dfrac{A(x)}{1-x}\):前缀和

3.3 用 OGF 解递推

例:\(a_n = 2a_{n-1} + 1\),\(a_0 = 0\)。

两边乘 \(x^n\) 求和:\(A(x) - a_0 = 2xA(x) + \dfrac{x}{1-x}\),解得

\[A(x) = \frac{x}{(1-x)(1-2x)} = \frac{1}{1-2x} - \frac{1}{1-x} \implies a_n = 2^n - 1 \]

例(计数):用 1 元、2 元、5 元硬币凑 \(n\) 元的方案数的 OGF:

\[\frac{1}{(1-x)(1-x^2)(1-x^5)} \]

每个因子对应一种硬币"用 \(0, 1, 2, \dots\) 枚"。这是完全背包的生成函数形式。

3.4 指数生成函数(EGF)

\(\hat A(x) = \sum_n a_n \dfrac{x^n}{n!}\)。用于有标号对象。

乘法:\(\hat A \hat B\) 的第 \(n\) 项是 \(\sum_k \binom{n}{k}a_k b_{n-k}\),即"把 \(n\) 个有标号元素分给两个结构"。

结构 EGF
排列(任意长度序列) \(\dfrac{1}{1-x}\)
集合(\(n\) 个元素只有一种放法) \(e^x\)
非空集合 \(e^x - 1\)
环排列 \(-\ln(1-x)\)
错排 \(\dfrac{e^{-x}}{1-x}\)

\(\exp\) 的组合意义:若"连通块"的 EGF 是 \(\hat C\),则"任意个连通块组成的结构"的 EGF 是 \(\exp \hat C\)。

  • 集合划分(贝尔数):块的 EGF 是 \(e^x - 1\),所以 \(\hat B = \exp(e^x - 1)\)。
  • 排列 = 环的集合:\(\dfrac{1}{1-x} = \exp(-\ln(1-x))\)。
  • 有标号图 = 连通图的集合(容斥进阶 6.1)。

3.5 例题:洛谷 P4389 付公主的背包

\(n\) 种物品,体积 \(v_i\),无限件,求凑出 \(1..m\) 每个体积的方案数。\(n, m \le 10^5\)。

生成函数 \(\prod_i \dfrac{1}{1 - x^{v_i}}\)。取 \(\ln\) 化乘为加:\(\ln\dfrac{1}{1-x^v} = \sum_{k \ge 1}\dfrac{x^{vk}}{k}\),对每种物品 \(O(m/v)\) 累加(调和级数 \(O(m \log m)\)),最后多项式 \(\exp\)。

这是"乘积形式 → \(\ln\) 变求和 → \(\exp\) 回去"的模板,背包的多项式加速。


4. 特殊计数序列

4.1 卡特兰数

\[C_n = \frac{1}{n+1}\binom{2n}{n} = \binom{2n}{n} - \binom{2n}{n+1},\qquad C_{n} = \frac{4n-2}{n+1}C_{n-1},\qquad C_{n+1} = \sum_{i=0}^{n}C_i C_{n-i} \]

\(1, 1, 2, 5, 14, 42, 132, 429, 1430, \dots\)

等价模型(都是 \(C_n\)):

  1. \(n\) 对括号的合法匹配
  2. \(n\) 个节点的二叉树形态
  3. \(n+1\) 个叶子的满二叉树
  4. \((0,0)\) 到 \((n,n)\) 不越过对角线的格路
  5. \(1..n\) 的出栈序列
  6. 凸 \(n+2\) 边形的三角剖分
  7. \(n\) 个 \(+1\) 和 \(n\) 个 \(-1\) 的序列,所有前缀和 \(\ge 0\)
  8. 长 \(2n\) 的不相交弦匹配(圆上 \(2n\) 点)

通项证明(反射原理):见 5.2。

4.2 第二类斯特林数 \(S(n,k)\)

\(n\) 个不同元素划分成 \(k\) 个非空无标号集合的方案数。

\[S(n,k) = k\,S(n-1,k) + S(n-1,k-1),\qquad S(n,k) = \frac{1}{k!}\sum_{i=0}^{k}(-1)^i\binom{k}{i}(k-i)^n \]

递推意义:第 \(n\) 个元素加入已有 \(k\) 块之一,或自成一块。通项由容斥(满射计数)得到。

同一行全部 \(S(n, \cdot)\) 可由通项卷积形式用 NTT 在 \(O(n \log n)\) 求出(洛谷 P5395)。

4.3 第一类斯特林数 \(s(n,k)\)

\(n\) 个元素分成 \(k\) 个环排列的方案数(无符号)。

\[s(n,k) = (n-1)\,s(n-1,k) + s(n-1,k-1) \]

意义:第 \(n\) 个元素插入已有 \(n-1\) 个元素的任一个后面(\(n-1\) 种),或自成一环。

生成函数:\(\sum_k s(n,k)x^k = x^{\overline{n}} = x(x+1)\cdots(x+n-1)\),分治 NTT 或倍增 \(O(n\log n)\)(洛谷 P5408)。

4.4 贝尔数 \(B_n\)

\(n\) 个元素的划分总数,\(B_n = \sum_k S(n,k)\)。

\[B_{n+1} = \sum_{k=0}^{n}\binom{n}{k}B_k \]

意义:枚举与第 \(n+1\) 个元素同块的其他元素有 \(n-k\) 个。\(1, 1, 2, 5, 15, 52, 203, \dots\)

4.5 分拆数 \(p(n)\)

把 \(n\) 写成若干正整数之和(不计顺序)的方案数。

  • 恰好 \(k\) 部分:\(p(n,k) = p(n-1,k-1) + p(n-k,k)\)(最小部分是 1 / 全部减 1)。
  • 生成函数 \(\sum p(n)x^n = \prod_{k \ge 1}\dfrac{1}{1-x^k}\)。
  • 五边形数定理:\(\prod_{k\ge1}(1-x^k) = \sum_{k}(-1)^k x^{k(3k-1)/2}\)(\(k\) 取遍整数),于是

\[p(n) = \sum_{k \ge 1}(-1)^{k+1}\left[p\!\left(n - \tfrac{k(3k-1)}{2}\right) + p\!\left(n - \tfrac{k(3k+1)}{2}\right)\right] \]

只有 \(O(\sqrt n)\) 项,\(O(n\sqrt n)\) 求出 \(p(0..n)\)。

4.6 错排数 \(D_n\)

\[D_n = (n-1)(D_{n-1} + D_{n-2}),\qquad D_n = n!\sum_{k=0}^{n}\frac{(-1)^k}{k!} \]

\(1, 0, 1, 2, 9, 44, 265, \dots\)。递推意义:元素 \(n\) 与某个 \(i\) 互换(\(D_{n-2}\)),或 \(n\) 到 \(i\) 的位置但 \(i\) 不到 \(n\) 的位置(\(D_{n-1}\))。

4.7 欧拉数 \(\left\langle{n \atop k}\right\rangle\)

\(1..n\) 的排列中恰好有 \(k\) 个上升位置(\(a_i < a_{i+1}\))的个数。

\[\left\langle{n \atop k}\right\rangle = (k+1)\left\langle{n-1 \atop k}\right\rangle + (n-k)\left\langle{n-1 \atop k-1}\right\rangle \]

4.8 序列速查表

序列 前几项(从 \(n=0\)) 关键递推
卡特兰 1, 1, 2, 5, 14, 42 \(C_n = \frac{4n-2}{n+1}C_{n-1}\)
贝尔 1, 1, 2, 5, 15, 52 \(B_{n+1} = \sum\binom{n}{k}B_k\)
错排 1, 0, 1, 2, 9, 44 \(D_n = (n-1)(D_{n-1}+D_{n-2})\)
分拆 1, 1, 2, 3, 5, 7, 11 五边形数定理
斐波那契 0, 1, 1, 2, 3, 5, 8 \(F_n = F_{n-1}+F_{n-2}\)

5. 格路计数与 LGV 引理

5.1 基本格路

从 \((0,0)\) 走到 \((n,m)\),每步向右或向上:\(\dbinom{n+m}{n}\)。

5.2 反射原理

问题:从 \((0,0)\) 到 \((n,n)\),路径不越过对角线 \(y = x\)(即始终 \(y \le x\)),有多少条?

做法:数"坏路径",即碰到直线 \(y = x+1\) 的路径。把坏路径第一次碰到 \(y = x + 1\) 之前的部分沿这条线翻转,起点 \((0,0)\) 变为 \((-1, 1)\)。这是坏路径与"从 \((-1,1)\) 到 \((n,n)\) 的所有路径"之间的双射,后者有 \(\dbinom{2n}{n+1}\) 条。

\[C_n = \binom{2n}{n} - \binom{2n}{n+1} \]

投票问题(Ballot):A 得 \(a\) 票,B 得 \(b\) 票,\(a > b\)。计票过程中 A 始终严格领先的概率是 \(\dfrac{a-b}{a+b}\)。同样用反射。

5.3 LGV 引理

设定:有向无环图,起点 \(A_1, \dots, A_n\),终点 \(B_1, \dots, B_n\)。\(e(u, v)\) 表示从 \(u\) 到 \(v\) 的路径条数(带权时是权值和)。

\[\det\begin{pmatrix} e(A_1,B_1) & \cdots & e(A_1,B_n) \\ \vdots & & \vdots \\ e(A_n,B_1) & \cdots & e(A_n,B_n)\end{pmatrix} = \sum_{\sigma}\text{sgn}(\sigma)\sum_{\substack{P_i: A_i \to B_{\sigma(i)}\\ \text{两两不相交}}}\prod_i w(P_i) \]

特别地,若只有 \(\sigma = \text{id}\) 能产生不相交路径组(常见于网格中起点终点分别单调排列),行列式就是不相交路径组的数量。

证明思路:对相交的路径组,取第一个交点,交换两条路径交点之后的部分,得到符号相反的另一组,两两抵消。

5.4 例题:洛谷 P6657 【模板】LGV 引理

\(n \times n\) 网格,\(m \le 20\) 个起点 \((a_i, 1)\) 和终点 \((b_i, n)\),只能向右向下,求不相交路径组数。

\(e(A_i, B_j) = \dbinom{(b_j - a_i) + (n-1)}{n-1}\),\(m \times m\) 行列式 \(O(m^3)\)。

5.5 例题:CF 348D Turtles

\(n \times m\) 网格有障碍,两只乌龟从 \((1,1)\) 到 \((n,m)\) 且路径不相交。
起点拆成 \((1,2), (2,1)\),终点拆成 \((n-1,m), (n,m-1)\),答案 \(= e_{11}e_{22} - e_{12}e_{21}\),每个 \(e\) 用 DP 求。


6. 图论计数

6.1 Cayley 公式与 Prüfer 序列

\(n\) 个有标号点的树有 \(n^{n-2}\) 棵。

Prüfer 编码:每次删除编号最小的叶子,记录它的邻居,直到剩两个点。得到长 \(n-2\) 的序列,与树一一对应。

性质:

  • 度数为 \(d\) 的点在序列中恰出现 \(d-1\) 次。
  • 指定度数序列 \(d_1, \dots, d_n\) 的树数:\(\dfrac{(n-2)!}{\prod(d_i - 1)!}\)。
  • \(k\) 个连通块(大小 \(a_1, \dots, a_k\))连成一棵树:\(n^{k-2}\prod a_i\)。
  • 完全二分图 \(K_{m,n}\) 的生成树:\(m^{n-1}n^{m-1}\)。

线性构造与解码:洛谷 P6086。

6.2 矩阵树定理

无向图 \(G\),度数矩阵 \(D\),邻接矩阵 \(A\)(重边计数),拉普拉斯矩阵 \(L = D - A\)。

\[\text{生成树数} = \det(L \text{ 去掉任意一行一列}) \]

有向图:

  • 以 \(r\) 为根的外向树(边从根指向外):\(L = D_{\text{in}} - A\),去掉第 \(r\) 行列。
  • 内向树(边指向根):\(L = D_{\text{out}} - A\),去掉第 \(r\) 行列。

带权:边权当作重边数,行列式给出所有生成树边权乘积之和。要求边权和,见容斥进阶 6.4 的变量打标记技巧。

模质数下行列式用高斯消元(辗转相除消元处理无逆元的情况),\(O(n^3)\)。模板:洛谷 P6178。

6.3 BEST 定理

有向图欧拉回路数:

\[\text{ec}(G) = t_r(G)\prod_{v}(\deg(v) - 1)! \]

其中 \(t_r\) 是以任意点 \(r\) 为根的内向树数(欧拉图中与 \(r\) 无关),\(\deg(v)\) 为出度(等于入度)。回路视为循环序列,不定起点;若定起点边则乘 \(\deg(r)\)。模板:洛谷 P5807。

6.4 例题:洛谷 P4430 小猴打架

\(n\) 个猴子,每天随机两只打架成为朋友,问恰好 \(n-1\) 天后全部连通的方案数(天有顺序)。
答案 \(= n^{n-2}\cdot(n-1)!\):一棵树,边有 \((n-1)!\) 种顺序。


7. 离散结构与经典定理

7.1 关系

集合 \(X\) 上的关系 \(R \subseteq X \times X\)。

  • 等价关系:自反、对称、传递。等价关系 \(\iff\) 集合划分。
  • 偏序关系 \(\le\):自反、反对称、传递。偏序集 \((P, \le)\)。
  • 链:两两可比的子集。反链:两两不可比的子集。

7.2 Dilworth 定理及其对偶

Dilworth:偏序集的最小链覆盖数 = 最大反链大小。

Mirsky(对偶):最小反链覆盖数 = 最长链长度。

导弹拦截(洛谷 P1020):序列上定义 \(i \le j \iff i < j\) 且 \(a_i \ge a_j\)(一套系统能拦截的是一条不升链)。最少系统数 = 最小链覆盖 = 最大反链 = 最长严格上升子序列长度。

讲课提示:Dilworth 是"最少几条链",对偶是"最少几条反链"。学生最容易搞混的就是"上升子序列"和"不升子序列"各自对应哪个,用导弹拦截固定住。

7.3 DAG 最小路径覆盖

不相交路径覆盖:每个点恰在一条路径上。把每个点拆成出点 \(u^+\) 和入点 \(u^-\),边 \((u,v)\) 连 \(u^+ \to v^-\),则

\[\text{最小路径覆盖} = n - \text{二分图最大匹配} \]

可相交路径覆盖:先求传递闭包(Floyd 位运算),再按不相交做。这就是 Dilworth 的算法实现。

7.4 Hall 定理

二分图 \((X, Y)\) 存在覆盖 \(X\) 的匹配 \(\iff\) 对任意 \(S \subseteq X\),\(|N(S)| \ge |S|\)。

用法:证明某类图一定有完美匹配(如 \(k\)-正则二分图),或在题目里把"存在匹配"转化为"对所有子集检查邻域大小",后者常常可以用性质缩小到 \(O(n)\) 个关键子集。

7.5 König 定理与相关等式

二分图中:

\[\text{最小点覆盖} = \text{最大匹配},\qquad \text{最大独立集} = |V| - \text{最大匹配} \]

一般图:最大独立集 \(+\) 最小点覆盖 \(= |V|\)(互补)。

例题:洛谷 P3355 骑士共存问题。棋盘黑白染色,马只在异色格之间攻击,二分图最大独立集 = 格子数 − 最大匹配。

7.6 Sperner 定理

\(\{1..n\}\) 的子集族中,若两两互不包含,则大小至多 \(\dbinom{n}{\lfloor n/2 \rfloor}\)。
(布尔格上的最大反链,取中间层。)

7.7 Ramsey 数

\(R(3,3) = 6\):6 个人中必有 3 人互相认识或 3 人互相不认识。证明:任取一人,其余 5 人中至少 3 人与他关系相同,再讨论这 3 人。\(R(4,4) = 18\),\(R(5,5)\) 未知(\(43\) 到 \(48\) 之间)。竞赛里只考 \(R(3,3)\) 的证明思路。

7.8 欧拉回路条件

  • 无向图:连通且所有点度数为偶(回路);恰两个奇点(路径)。
  • 有向图:弱连通且所有点入度 = 出度(回路);恰一点出 − 入 \(= 1\)、一点入 − 出 \(= 1\)(路径)。

8. 常见错误清单

  1. 隔板法正整数 / 非负整数混淆。 正整数 \(\binom{n-1}{k-1}\),非负 \(\binom{n+k-1}{k-1}\)。
  2. 圆排列忘记除 \(n\)。 旋转等价是 \((n-1)!\),若还有翻转再除 2(\(n \ge 3\))。
  3. 卡特兰"不越过"与"不接触"。 不越过对角线是 \(C_n\),不接触(严格在一侧)是 \(C_{n-1}\)。
  4. EGF 与 OGF 混用。 有标号用 EGF,无标号用 OGF;EGF 乘法带 \(\binom{n}{k}\)。
  5. Prüfer 度数性质记反。 出现次数 \(= d - 1\),叶子不出现。
  6. 矩阵树有向图内向 / 外向搞反。 外向树用入度矩阵。
  7. Dilworth 与对偶用错。 最少链 = 最大反链;最少反链 = 最长链。
  8. LGV 忘记检查只有恒等置换。 若起点终点不单调,行列式含负项,不能直接当计数。
  9. 五边形数定理漏掉负 \(k\)。 \(k\) 取遍 \(\pm1, \pm2, \dots\),广义五边形数 \(1, 2, 5, 7, 12, 15, \dots\)。
  10. 斯特林数上下标。 \(S(n,k)\) 的 \(n\) 是元素数,\(k\) 是块数,\(k > n\) 时为 0。

9. 课堂练习

  1. 10 个相同球放 4 个不同盒子,允许空盒。(答:\(\binom{13}{3} = 286\))
  2. 证明 \(\sum_{k}k\binom{n}{k} = n2^{n-1}\),分别用吸收恒等式和求导两种方法。
  3. 求 \(a_n = 3a_{n-1} - 2a_{n-2}\),\(a_0 = 0, a_1 = 1\) 的通项。(答:\(2^n - 1\))
  4. 写出 \(C_5 = 42\) 对应的"\(5\) 对括号"中以 (( 开头的个数。(答:\(C_5 - C_4 = 42 - 14 = 28\))
  5. 计算 \(S(5,2)\) 与 \(s(5,2)\)。(答:15 与 50)
  6. 计算 \(B_5\)。(答:52)
  7. 由 Prüfer 序列 \((3,3,1)\) 还原 5 个点的树。(答:边 \(\{2,3\},\{4,3\},\{3,1\},\{1,5\}\))
  8. 一个 \(3 \times 3\) 网格图的生成树数。(答:192)
  9. 序列 \(5, 3, 8, 1, 9, 2\) 的最少不升子序列覆盖数。(答:3,最长上升子序列 \(3,8,9\))
  10. 证明 \(R(3,3) \le 6\)。

10. 推荐题单

难度 题目 考点
入门 洛谷 P2822 [NOIP2016] 组合数问题 杨辉三角 + 前缀和
入门 洛谷 P1020 [NOIP1999] 导弹拦截 Dilworth
入门 洛谷 P1044 [NOIP2003] 栈 卡特兰
基础 洛谷 P3200 [HNOI2009] 有趣的数列 卡特兰 + 质因数分解求模
基础 洛谷 P6086 【模板】Prüfer 序列 Prüfer
基础 洛谷 P6178 【模板】Matrix-Tree 定理 矩阵树
基础 洛谷 P2762 太空飞行计划 最小割 / König
基础 洛谷 P3355 骑士共存问题 最大独立集
基础 洛谷 P2764 最小路径覆盖问题 拆点匹配
提高 洛谷 P6657 【模板】LGV 引理 LGV
提高 洛谷 P5395 【模板】第二类斯特林数·行 NTT
提高 洛谷 P5408 【模板】第一类斯特林数·行 倍增 NTT
提高 洛谷 P4389 付公主的背包 多项式 exp
提高 洛谷 P5807 【模板】BEST 定理 欧拉回路计数
提高 洛谷 P4931 情侣?给我烧了! 错排变形
挑战 洛谷 P4841 城市规划 多项式 ln
挑战 洛谷 P6667 [清华集训2016] 如何优雅地求和 下降幂多项式

附录:一页纸总结

\[\text{隔板:}\ \binom{n-1}{k-1}\ (\text{正}),\ \binom{n+k-1}{k-1}\ (\text{非负})\qquad \text{卡特兰:}\ C_n = \frac{1}{n+1}\binom{2n}{n} \]

\[S(n,k) = kS(n-1,k) + S(n-1,k-1),\qquad s(n,k) = (n-1)s(n-1,k) + s(n-1,k-1),\qquad B_{n+1} = \sum_k\binom{n}{k}B_k \]

\[\text{Cayley:}\ n^{n-2},\quad \frac{(n-2)!}{\prod(d_i-1)!},\quad n^{k-2}\prod a_i\qquad \text{矩阵树:}\ \det(L_{\hat r\hat r}),\ L = D - A \]

\[\text{LGV:}\ \det[e(A_i,B_j)] = \sum_\sigma \text{sgn}(\sigma)\,\#\{\text{不相交路径组}\} \]

\[\text{Dilworth:最少链} = \text{最大反链};\qquad \text{Mirsky:最少反链} = \text{最长链} \]

\[\text{König:最小点覆盖} = \text{最大匹配},\quad \text{最大独立集} = n - \text{最大匹配},\quad \text{最小路径覆盖} = n - \text{最大匹配} \]

思路检查表:有标号 → EGF / Prüfer / 矩阵树;无标号 → OGF / Burnside;"不相交" → LGV;"最少几条链" → Dilworth;"存在匹配" → Hall。

posted @ 2026-09-18 16:20  ylzqwq  阅读(35)  评论(0)    收藏  举报