计数问题-从入门到进阶

· · 算法·理论

题单涵盖了从NOIP省选/NOI级别的绝大多数计数类考点。

计数题单

第一板块:基础组合数学与经典原理

(地基:高中数学延伸 + 预处理技巧)

这一板块考察对加法/乘法原理的灵活运用,以及如何快速计算组合数。

第二板块:三大经典计数数列

(模型:卡特兰、斯特林、错排)

这是提高组向省选跨越的必修课,考察对经典模型的识别。

1. 卡特兰数 (Catalan)

2. 斯特林数 (Stirling Numbers)

3. 错排与特殊数列

第三板块:计数 DP (Dynamic Programming)

(算法:将数学融入状态转移)

涵盖了线性、区间、状压、树形等多种DP在计数中的应用。

第四板块:容斥原理与反演

(难点:解决“至少”、“至多”、“恰好”类问题)

这是省选计数题中最强大的工具。

第五板块:数论计数与高级技巧

(进阶:模运算、Lucas、矩阵、GCD)

第六板块:树上计数问题

这些题目涵盖了树形DP、Prufer序列、矩阵树定理等树上计数的三个主要分支。

1. 树形 DP 与 树上结构 (Tree DP)

这类题目通常不直接套公式,而是考察“在树上进行状态转移”的逻辑。

2. Prufer 序列 (无根树计数)

解决“已知度数构造树”或“生成树计数”的核心工具。

3. 矩阵树定理 (Matrix Tree Theorem)

解决任意图的生成树计数问题,通常需要用到高斯消元求行列式。

4. 卡特兰数 (Catalan)

二叉树形态计数是卡特兰数的典型应用。

第七板块:图上计数

图上计数(Graph Counting)是图论与组合数学的交叉领域。在提高组到省选的跨度中,它主要分为三类:路径计数(DAG/最短路)、生成树计数(矩阵树定理)、以及基于连通性/环的结构计数。

第一阶段:路径与拓扑计数(DAG 与 最短路)

核心逻辑:利用图的无环性(Topological Sort)或最短路的最优子结构进行 DP。

1. 洛谷 P4017 [NOIP2009 普及组] 最大食物链

2. 洛谷 P1144 最短路计数

第二阶段:生成树计数(矩阵树定理与 MST)

核心逻辑:解决“有多少种连接方式使得图连通”或“最小生成树有多少种”。

3. 洛谷 P4208 [JSOI2008] 最小生成树计数

4. 洛谷 P4111 [HEOI2015] 小 Z 的房间

第三阶段:环与连通性计数

核心逻辑:利用 Tarjan 算法处理点双/边双连通分量,或者统计特定长度的环。

5. 洛谷 P1989 无向图三元环计数

6. 洛谷 P3225 [HNOI2012] 矿场搭建

第四阶段:综合难题(图论 + 组合数学)

核心逻辑:在复杂的图限制下进行组合推导。

7. 洛谷 P3214 [HNOI2011] 卡农

8. 洛谷 P2624 [HNOI2008] 明明的烦恼