我把三样东西合并了:我原来的七层路线图 + 你贴的 USAMO 12-Stage 的数学内容 + 两者都没有、但属于”组合精通”该有的若干主题。同时按你的要求做了三件事——去掉了 USAMO 那份里的”实战 / 真题 / 批改”等非数学内容(Stage 12 整个删除);把我原来偏编程的支线改造成了数学(Lucas、转移矩阵、卷积=多项式乘积、组合数系等,讲背后的代数 / 数论而非写代码);补了一批新主题(文末汇总)。

标记说明: ★ = USAMO 核心高频技巧;【新增】= 你原列表和 USAMO 列表都没有、我补进来的;(数学化) = 从我原编程支线改造而来。


Stage 1:计数基础与双射思想

定位:地基,但从第一天起就强调”证明”而非”套公式”。

  • 计数思维:分清「计数 (counting)」「概率 (probability)」「枚举 (listing)」。
  • 集合语言:并集、交集、补集、子集;|A∪B| = |A| + |B| − |A∩B|。
  • 两条基本原理:加法原理 (addition rule,互斥情形)、乘法原理 (multiplication rule,独立连续选择)。
  • 排列 P(n,r) = n!/(n−r)!;组合 C(n,r) = n!/(r!(n−r)!)。
  • 多重集排列(重复排列):n!/(n₁! n₂! … n_k!)。
  • 可重复组合 / 隔板法(插板法,stars and bars):C(n+r−1, r−1)。
  • 圆排列 (circular permutations):(n−1)!;项链计数(含翻转对称)。
  • 补集计数 (complementary counting)、系统化分类讨论 (casework)。
  • 双射原理与双射证明 (bijection principle & bijective proof):用「一一对应」代替硬算——贯穿全程的核心证明武器,USAMO 极常用。
  • 记号:阶乘 n!、求和 Σ、连乘 Π。

Stage 2:二项式系数、恒等式与双计数

定位:计数与代数 / 数论挂钩;建立两大证明手法(组合论证 + 双计数)。

  • 二项式定理:(x+y)ⁿ = Σ C(n,k) xᵏ yⁿ⁻ᵏ;多项式定理 (multinomial theorem)。
  • 杨辉三角 (Pascal’s triangle)、帕斯卡法则 C(n,k) = C(n−1,k−1) + C(n−1,k)。
  • 经典恒等式:朱世杰恒等式 (hockey-stick)、范德蒙德恒等式 (Vandermonde)、对称性 C(n,k)=C(n,n−k)、Σ C(n,k)=2ⁿ、交错和 = 0。
  • 组合论证 / 双计数 (combinatorial proof / double counting):用两种数法去数同一个东西来证恒等式——USAMO 证明题的常见手法。
  • 二项式系数的数论 (数学化)
    • Lucas 定理 (Lucas’ theorem):按 p 进制拆位计算 C(n,k) mod p。
    • 【新增】Kummer 定理 (Kummer’s theorem):p 整除 C(m+n, n) 的幂次 = m 与 n 在 p 进制下相加的进位次数。
    • 模质数下计算 C(n,k) 的代数原理(阶乘 + 模逆元,讲”为什么”而非实现)。
  • 【新增, 数学化】组合数系 (combinatorial number system) 与阶乘数系 (factoradic):把每个组合 / 排列与一个整数一一对应——“排名 / 反排名”的数学本质,就是一个双射。

Stage 3:容斥原理与鸽笼原理

定位:第一批”有威力”的工具;鸽笼是 USAMO 存在性证明的最高频武器。

  • 容斥原理 (inclusion–exclusion):完整的交错求和公式。
  • 错排 (derangements):D_n = n! Σ (−1)ᵏ/k!;递推 D_n = (n−1)(D_{n−1} + D_{n−2})。
  • 用容斥数满射 (surjections);推导欧拉函数 (Euler’s totient);与莫比乌斯反演 (Möbius inversion) 的呼应(接你数论那套)。
  • 鸽笼原理 (pigeonhole)
    • 基本鸽笼、加强鸽笼。
    • 【新增 / USAMO】平均值原理 (averaging principle):「存在不小于平均、也存在不大于平均的个体」。
    • 大量存在性证明的应用——USAMO 最高频工具之一。

Stage 4:递推、生成函数与特殊数列

定位:把计数变成可机械操作的代数。这一层把原编程支线大量”数学化”。

  • 建立递推关系 (recurrence relations);解线性齐次递推(特征方程 characteristic equation)。
  • 【新增, 数学化】转移矩阵法 (transfer matrix method):把”数路径 / 数铺砖 / 数合法串”问题写成矩阵幂——这是很多 DP 计数的数学版本。
  • 生成函数 (generating functions):普通生成函数 (OGF)、指数生成函数 (EGF)。
  • 卷积 (convolution) = 多项式乘积 (数学化):FFT / NTT 背后的代数本质,就是两个生成函数相乘。
  • 【新增】单位根筛 (roots of unity filter):用单位根提取生成函数里”每隔 k 项”的系数和。
  • 卡塔兰数 (Catalan numbers) C_n = C(2n,n)/(n+1) 及其多种解释(合法括号、二叉树、多边形三角剖分、Dyck 路径、非交叉划分)。
  • 【新增】反射原理 / 循环引理 / 投票问题 (reflection principle / cycle lemma / ballot problem):卡塔兰数与格点路径计数背后的核心双射方法(André 反射)。
  • 斯特林数 (Stirling numbers) 第一、二类;贝尔数 (Bell numbers,集合划分)。
  • 整数分拆 (integer partitions):p(n)、Ferrers / Young 图、分拆生成函数 ∏ 1/(1−xᵏ)。
  • 十二重计数法 (twelvefold way) / 球盒问题:把”球放盒子”的所有变体(球同 / 异、盒同 / 异、是否有空盒限制)统一成一张表——组织整个计数体系的总框架。
  • 【新增】q-类比 / 高斯二项式系数 (q-analogs / Gaussian binomials):数有限域上子空间、与分拆相连(进阶,简述)。
  • 斐波那契等数列作为递推 / 生成函数的标准案例。

Stage 5:奥赛证明技巧——不变量、极端、构造 ★★(整套规划的灵魂)

定位:USAMO 组合题大多考这些”思想”而非公式。没有套路,靠巧思 + 经验积累。

  • 不变量与单变量 (invariants & monovariants)
    • 不变量:操作中保持不变的量 → 证明”某状态不可达”。
    • 单变量:单调变化的量 → 证明”某过程必然终止”。
    • 染色论证 (coloring arguments):用染色构造不变量(棋盘 / 多米诺覆盖类问题的招牌)。
  • 极端原理 (extremal principle):考虑”最大 / 最小 / 最长 / 最重”的对象,它往往有可利用的特殊性质——难题的常见切入点。
  • 构造与存在性 (construction & existence)
    • 如何”造”出满足条件的例子。
    • 如何证明存在 / 不存在(下界构造 + 上界论证的配合)。
  • 【新增】组合博弈 (combinatorial game theory)
    • Nim 游戏、Sprague–Grundy 定理。
    • 策略窃取 (strategy stealing)配对策略 (pairing strategy)——USAMO 博弈题的常见证法。
    • (博弈分析本质也是”必胜态 / 不变量”的论证,故归在这一层。)

Stage 6:高级方法——概率、线性代数、多项式、对称

定位:组合的”重武器”。一部分是 USAMO 高端题的钥匙(期望线性性、零点定理),一部分通向科研。

  • 概率方法 (probabilistic method)(深化,原两份列表都只到”入门”):
    • 期望的线性性 (linearity of expectation)——USAMO / Putnam 的招牌技巧,常能秒杀计数 / 存在性题。
    • 第一矩 / 第二矩方法 (first / second moment method)。
    • 删除法 / 修正法 (alteration / deletion method)。
    • 【新增】Lovász 局部引理 (Lovász Local Lemma, LLL)
  • 【新增】线性代数方法 (linear algebra method):维数 / 秩论证;经典问题 Oddtown / Eventown、两距离集 (two-distance sets)。
  • 【新增】多项式方法 (polynomial method)组合零点定理 (Combinatorial Nullstellensatz, Alon) 及其应用(olympiad 偶尔出现);有限域上的多项式技巧简介。
  • 对称计数:Burnside 引理 (Burnside’s lemma) 与 Pólya 计数定理 (Pólya enumeration)——在群作用下计数(染色、项链、分子结构)。

Stage 7:图论、极值组合与代数枚举

定位:USAMO 组合的重要分支(图论)+ 通向科研的结构性领域。内容最密,是”前沿汇总”层。

  • 图论基础 (graph theory basics):图、度、握手定理 (handshake lemma)、路径、连通性、树 (trees)、二部图 (bipartite)、欧拉路 / 哈密顿路 (Euler / Hamilton paths)。
  • 【新增】Cayley 公式 (Cayley’s formula) 与 Prüfer 序列 (Prüfer sequences):n 个标号点的树共有 n^(n−2) 棵——计数与图论的漂亮交汇。
  • 图论进阶:图染色 (graph coloring)、平面图 (planar graphs) 与欧拉公式 V − E + F = 2、匹配 (matching)、Hall 定理 (Hall’s theorem)、König 定理。
  • 拉姆齐理论 (Ramsey theory):「足够大必出现某结构」;拉姆齐数。
  • 极值组合 (extremal combinatorics):Sperner 定理、Dilworth 定理、Turán 定理、Erdős–Ko–Rado;【新增】向日葵引理 (sunflower lemma)。
  • 偏序集与默比乌斯反演 (posets & Möbius inversion on posets)、格 (lattices):容斥原理的深层推广。
  • 【新增】代数枚举 (algebraic enumeration)矩阵树定理 (Matrix–Tree theorem) 用行列式数生成树;LGV 引理 (Lindström–Gessel–Viennot) 用行列式数不相交路径。
  • 设计理论 (design theory):拉丁方 (Latin squares)、Steiner 系统、区组设计 (block designs)。

新增内容汇总(你原列表 + USAMO 都没有的)

  • Stage 2:Kummer 定理、组合数系 / 阶乘数系。
  • Stage 3:平均值原理。
  • Stage 4:转移矩阵法、单位根筛、反射原理 / 循环引理 / 投票问题、q-类比 / 高斯二项式系数。
  • Stage 5:组合博弈(Nim、Sprague–Grundy、策略窃取、配对策略)。
  • Stage 6:期望线性性(深化)、Lovász 局部引理、线性代数方法 (Oddtown/Eventown)、多项式方法 (组合零点定理)。
  • Stage 7:Cayley 公式 + Prüfer 序列、向日葵引理、矩阵树定理、LGV 引理。

从编程”数学化”的项:Lucas / Kummer 定理、组合数系、转移矩阵法、卷积=多项式乘积、单位根筛——现在讲的都是背后的代数 / 数论,不是写代码。


我的观点(直说)

这份合并后的清单,重心终于摆对了:Stage 5 是真正的灵魂(不变量、极端、构造,这是 USAMO 组合丢分 / 得分的地方),Stage 6 的期望线性性和 Stage 3 的鸽笼、Stage 1 的双射是另外三个高杠杆点。如果时间有限,这四块(双射 + 鸽笼 + 不变量 / 极端 / 构造 + 期望线性性)就是 USAMO 组合的钥匙,应该投入最多精力。

但我要诚实标注一个梯度:新增项里,反射原理、期望线性性、组合零点定理、Cayley 公式、组合博弈是”olympiad 真能用上”的;而矩阵树定理、LGV 引理、q-类比、Lovász 局部引理更偏”科研深度 / Putnam”,严格说超出 USAMO 常规范围——我按你”写全”的要求放进来了,但优先级应排在 Stage 1–6 的奥赛核心之后,当作冲刺更高目标时的延伸。


置信度:约 0.85。 内容的完整性与归类我有把握;7 个 Stage 的”压缩”是主要不确定来源。

主要注意事项:

  • 7 个 Stage 装下了原本 ~18 个主题板块,所以 Stage 4 / 6 / 7 偏密,每一个其实都能再拆成 2–3 个独立单元;真正学的时候建议按子条目分批推进。
  • ★ 的”USAMO 核心”标记基于常见出现频率,非精确统计。
  • 上面提到的科研深度新增项(矩阵树、LGV、q-类比、LLL)超出 USAMO 严格范围,是按你”写全”的要求补的,别让它们挤占奥赛核心的时间。
  • 这只是一种合理排法;把 Burnside 放进 Stage 4、或把极值组合单独成 Stage,都说得通。
  • 本次为知识体系设计,无代码;后续若涉及计数验证,会用 Python 并附镜像安装方式。