Appearance
附录 B · 高频考点 · 易错点 · 速查总表
本附录把八级八章的「考点总结表」聚合为一张总表,并补充跨章易错点与考前速查卡。 星级说明:⭐⭐⭐⭐⭐ 必考压轴;⭐⭐⭐⭐ 高频;⭐⭐⭐ 中频;⭐⭐ 了解。
一、五星考点 TOP 榜(必看必背)
| # | 考点 | 出处 | 一句话记忆 |
|---|---|---|---|
| 1 | 加法原理 vs 乘法原理:分类相加,分步相乘 | 第 2 章 | 关键看"或"还是"然后" |
| 2 | 排列 A(n,m) 有序、组合 C(n,m) 无序 | 第 3 章 | 选出来还要不要排 |
| 3 | 阶乘溢出:20! 是 long long 的极限 | 第 3 章 | 21! 就爆了,必须取模或高精度 |
| 4 | 杨辉三角 = 组合数表,第 n 行第 m 个 = C(n,m) | 第 4 章 | 编号从 0 起算 |
| 5 | 快速幂复杂度 O(log b),不是 O(log a) | 第 5 章 | 循环次数 = 指数的二进制位数 |
| 6 | 快速幂 ans 初值 = 1(不是 0) | 第 5 章 | 且写 1 % p 防 p=1 |
| 7 | 循环条件 while (b > 0),不是 b > 1 | 第 5 章 | 否则漏最高位 |
| 8 | 三角形面积别忘 ÷ 2 | 第 6 章 | 圆面积 πr²、周长 2πr |
| 9 | Kruskal:边排序 + 并查集,O(m log m) | 第 7 章 | 适合稀疏图 |
| 10 | Dijkstra 不能处理负权边 | 第 7 章 | 贪心定型的前提是权值非负 |
| 11 | Floyd 的 k 必须在最外层 | 第 7 章 | 这句话要刻在脑子里 |
| 12 | 复杂度量级排序:O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!) | 第 8 章 | 必背顺序 |
| 13 | 图遍历复杂度 O(V+E),不是 O(V·E) | 第 8 章 | 相加不是相乘 |
| 14 | 剪枝不改变最坏复杂度的上界 | 第 8 章 | 判断题高频 |
| 15 | 记忆化搜索把 O(2ⁿ) 降到 O(n),不是 O(n²) | 第 9 章 | 斐波那契优化链 |
二、逐章考点 · 易错点总表
1. 第 2 章 计数原理
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 加法原理(分类) | ⭐⭐⭐⭐⭐ | 选择/计算 | 与乘法原理混淆 |
| 乘法原理(分步) | ⭐⭐⭐⭐⭐ | 选择/计算 | 分步之间必须相互独立 |
| 两大原理辨析 | ⭐⭐⭐⭐⭐ | 判断/选择 | 关键看"或"还是"然后" |
| 分类不重不漏 | ⭐⭐⭐⭐ | 选择 | 重复计数是头号错误 |
| 树状图枚举 | ⭐⭐⭐ | 选择 | 小规模可用,大规模必用原理 |
| 含限制条件的计数 | ⭐⭐⭐⭐ | 选择/编程 | 先处理限制元素 |
2. 第 3 章 排列与组合
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 排列 A(n,m) 公式 | ⭐⭐⭐⭐⭐ | 选择/计算 | 有序;n!/(n-m)! |
| 组合 C(n,m) 公式 | ⭐⭐⭐⭐⭐ | 选择/计算 | 无序;n!/(m!(n-m)!) |
| 阶乘溢出边界 | ⭐⭐⭐⭐⭐ | 选择/判断 | 20! 是 long long 极限 |
| 组合数三种求法 | ⭐⭐⭐⭐⭐ | 选择/编程 | 公式法 / 递推(杨辉三角)/ 阶乘逆元 |
| C(n,m) = C(n,n−m) | ⭐⭐⭐⭐ | 选择/判断 | 对称性,可简化计算 |
| 捆绑法 | ⭐⭐⭐⭐ | 选择/计算 | 相邻问题先打包 |
| 插空法 | ⭐⭐⭐⭐ | 选择/计算 | 不相邻问题先排再插 |
| 排列 vs 组合判定 | ⭐⭐⭐⭐⭐ | 判断/选择 | 交换顺序算不算同一种 |
3. 第 4 章 杨辉三角
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 杨辉三角的定义 | ⭐⭐⭐⭐ | 选择/判断 | 每个数 = 肩上的两个数之和 |
| 二维递推实现 | ⭐⭐⭐⭐⭐ | 代码填空/编程 | 边界:每行首尾为 1 |
| 一维滚动数组优化 | ⭐⭐⭐⭐⭐ | 代码填空 | 必须倒序更新,否则覆盖 |
| 用杨辉三角求组合数 | ⭐⭐⭐⭐⭐ | 选择/编程 | 第 n 行第 m 个 = C(n,m) |
| 二项式系数求和 | ⭐⭐⭐⭐ | 选择/计算 | Σ C(n,k) = 2ⁿ |
| 路径计数(经典应用) | ⭐⭐⭐⭐⭐ | 编程题 | 从 (0,0) 到 (n,m) 的方案数 = C(n+m, n) |
| 编号从 0 还是 1 起 | ⭐⭐⭐⭐ | 选择 | 看清题目给的行号起点 |
| 数据范围与溢出 | ⭐⭐⭐⭐ | 编程 | 大数取模 |
4. 第 5 章 倍增法
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 倍增核心思想 | ⭐⭐⭐⭐⭐ | 选择/判断 | 二进制拆分,O(log n) |
| 快速幂模板 | ⭐⭐⭐⭐⭐ | 编程题/代码填空 | ans 初始为 1,不是 0 |
| 快速幂时间复杂度 | ⭐⭐⭐⭐⭐ | 选择/判断 | O(log b),不是 O(log a) |
位运算 b & 1 | ⭐⭐⭐⭐⭐ | 选择/代码填空 | 取最低位,判断奇偶 |
位运算 b >>= 1 | ⭐⭐⭐⭐⭐ | 代码填空/选择 | 右移一位,等于除以 2 |
| 取模防溢出 | ⭐⭐⭐⭐⭐ | 选择/编程/判断 | 用 long long,每步取模 |
| LCA 倍增(📚 超纲) | ⭐⭐⭐⭐ | 选择/判断 | up[j][i] = 2ʲ 级祖先 |
| RMQ / ST 表(📚 超纲) | ⭐⭐⭐⭐ | 选择/判断 | 预处理 O(n log n),查询 O(1) |
| 循环条件 | ⭐⭐⭐⭐ | 代码填空/判断 | while(b>0) 不是 while(b>1) |
| 模运算性质 | ⭐⭐⭐⭐ | 选择/判断 | (a*b)%p = [(a%p)*(b%p)]%p |
5. 第 6 章 代数与平面几何
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 一元一次方程 | ⭐⭐⭐⭐ | 选择/判断 | a=0 的特殊情况(无解/无穷解) |
| 二元一次方程组 | ⭐⭐⭐⭐ | 选择/计算 | 代入 / 加减消元法 |
| 长方形面积 / 周长 | ⭐⭐⭐⭐⭐ | 选择/计算 | 面积 = 长×宽,周长 = 2×(长+宽) |
| 正方形面积 / 周长 | ⭐⭐⭐⭐⭐ | 选择/计算 | 面积 = 边长²,周长 = 4×边长 |
| 三角形面积 | ⭐⭐⭐⭐⭐ | 选择/计算 | 别忘 ÷ 2 |
| 圆的面积 / 周长 | ⭐⭐⭐⭐⭐ | 选择/计算 | 面积 = πr²,周长 = 2πr |
| 浮点数比较 | ⭐⭐⭐⭐⭐ | 判断/选择 | 不能 ==,要用 eps |
| 海伦公式 | ⭐⭐⭐ | 选择/了解 | p=(a+b+c)/2,√(p(p-a)(p-b)(p-c)) |
| 几何计数 | ⭐⭐⭐⭐ | 选择/计算 | C(m,2)×C(n,2) 数长方形 |
| π 的精确表示 | ⭐⭐⭐⭐ | 选择/编程 | acos(-1.0) 比 3.14 精确 |
6. 第 7 章 图论算法及综合应用
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| MST 定义和性质 | ⭐⭐⭐⭐⭐ | 选择/判断 | n 个点 n−1 条边,无环,连通 |
| Kruskal 算法 | ⭐⭐⭐⭐⭐ | 编程题/选择 | 边排序 + 并查集,O(m log m) |
| Prim 算法 | ⭐⭐⭐⭐ | 选择/判断 | 贪心加点,稠密图更优 |
| Dijkstra 算法 | ⭐⭐⭐⭐⭐ | 编程题/选择 | 不能处理负权边 |
| Floyd 算法 | ⭐⭐⭐⭐⭐ | 编程题/选择/代码填空 | k 必须在最外层,O(n³) |
| 并查集 | ⭐⭐⭐⭐⭐ | 代码填空/编程 | 路径压缩 + 按秩合并,近似 O(1) |
| 算法选型 | ⭐⭐⭐⭐⭐ | 选择/判断 | MST vs 最短路;Kruskal vs Prim |
| 负权边处理 | ⭐⭐⭐⭐ | 选择/判断 | Dijkstra 不能;Floyd 可以(但不可有负环) |
| 重边 / 自环 | ⭐⭐⭐⭐ | 编程细节 | 重边取最小值,自环不影响 |
| INF 初始化 | ⭐⭐⭐⭐ | 代码填空 | 0x3f3f3f3f ≈ 1e9,两个相加不溢出 |
| 不可达输出 | ⭐⭐⭐⭐ | 编程细节 | 输出 −1,用 INF/2 判断(防溢出) |
| 图论建模 | ⭐⭐⭐⭐⭐ | 编程题 | 三问:顶点?边?边权? |
7. 第 8 章 时间和空间效率分析
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 大 O 表示法规则 | ⭐⭐⭐ | 选择、判断 | 忘记忽略常数系数、保留低阶项 |
| 循环复杂度分析 | ⭐⭐⭐ | 选择、程序阅读 | 两层循环想当然 O(n²),不数内层实际次数 |
| 递归复杂度(递归树) | ⭐⭐⭐ | 选择、判断 | 时间和空间混淆;空间看深度不是节点数 |
| 最好/最坏/平均 | ⭐⭐ | 选择、判断 | 快排最坏 O(n²) 常记错;归并三者都是 O(n log n) |
| 空间复杂度(含递归栈) | ⭐⭐⭐ | 选择、判断 | 漏掉递归栈;归并空间 O(n) 而非 O(log n) |
| 1 秒数据量估算 | ⭐⭐⭐ | 选择 | 不留余量;n√n 等中间量级判断不准 |
| 排序算法复杂度对比 | ⭐⭐⭐ | 选择、判断 | 稳定性、空间、最坏情况张冠李戴 |
| 图遍历复杂度 | ⭐⭐ | 选择 | 误写为 O(V·E);混淆邻接表和邻接矩阵 |
| DP 复杂度分析 | ⭐⭐ | 选择 | 时间 = 状态数 × 转移代价,常漏乘转移代价 |
| 剪枝与复杂度上界 | ⭐⭐ | 判断 | 以为剪枝改变最坏复杂度上界 |
8. 第 9 章 算法优化
| 考点 | 星级 | 出题形式 | 易错点 |
|---|---|---|---|
| 斐波那契优化链 | ⭐⭐⭐ | 选择、判断 | 记忆化搜索是 O(n) 不是 O(n²);矩阵快速幂 O(log n) |
| 前缀和 / 打表预处理 | ⭐⭐⭐ | 选择、编程 | 只问一次时预处理反而更慢;下标从 1 开始 |
| 记忆化搜索 | ⭐⭐⭐ | 选择、编程 | 忘记初始化记忆数组;边界处理不当 |
| 快速幂 | ⭐⭐⭐ | 选择、编程 | 忘记取模导致溢出;初始值设为 0(应为 1) |
| 排序 + 双指针 | ⭐⭐ | 选择、编程 | 双指针移动条件判断错误;需先排序 |
| 贪心算法 | ⭐⭐⭐ | 选择、判断 | 误以为所有问题都能贪心;0/1 背包用贪心是错的 |
| 数据结构选型 | ⭐⭐⭐ | 选择 | 哈希表 vs 堆 vs 并查集适用场景混淆 |
| 等差 / 等比求和公式 | ⭐⭐⭐ | 选择、编程 | 等比求和取模时除法要换成乘逆元 |
| 约瑟夫递推 | ⭐⭐ | 选择、编程 | 0 基 / 1 基编号转换错误;递推初始条件记错 |
| 数学消元优化 | ⭐⭐ | 编程 | 变量关系推导错误;忘记检验约束条件 |
三、选择题 / 判断题「陷阱」20 条
- 「分类」用加法,「分步」用乘法——先判断是"或"还是"然后"。
- 排列与组合的差别只有一句话:选出来后还要不要排序。
- 20! ≈ 2.43×10¹⁸ 刚好装进
long long,21! 就溢出。 C(n,m) = C(n,n−m)——m 很大时换一个算,能省一半循环。- 杨辉三角一维优化必须倒序(和 01 背包同理)。
- 从 (0,0) 到 (n,m) 只能向右/向下的路径数 = C(n+m, n)。
- 快速幂的复杂度是 O(log b)(指数的位数),不是 O(log a)。
ans初值写1,且最好写1 % p(p = 1 时答案应为 0)。while (b > 0),写成b > 1会漏掉最高位。b & 1是按位与,b && 1是逻辑与——别写错。- 三角形面积 = 底 × 高 ÷ 2,÷2 最容易漏。
- π 用
acos(-1.0),别手写3.14。 - Dijkstra 不能处理负权边(判断题年年考)。
- Floyd 的 k 在最外层,i、j 在内层。
- 并查集判断同集合要比根不比父。
INF用0x3f3f3f3f,判断不可达用INF/2(防止加法溢出)。- 图的邻接表遍历复杂度是 O(V+E),不是 O(V·E)。
- 归并排序的空间复杂度是 O(n)(辅助数组),不是 O(log n)。
- 剪枝不改变最坏情况的复杂度上界。
- 记忆化搜索把朴素递归的 O(2ⁿ) 降到 O(n),不是 O(n²)。
四、考前 30 分钟速查卡
【计数】 分类相加(或)、分步相乘(然后);不重不漏
【排列组合】A(n,m)=n!/(n-m)!(有序);C(n,m)=n!/(m!(n-m)!)(无序)
C(n,m)=C(n,n-m);20! 是 long long 极限,21! 溢出
捆绑法(相邻)、插空法(不相邻)
【杨辉三角】每数 = 肩上两数之和;第 n 行第 m 个 = C(n,m)(从 0 起)
一维优化必须倒序;Σ C(n,k) = 2ⁿ
路径计数:C(n+m, n)
【倍增】 快速幂:ans=1(不是0);while(b>0);b&1;b>>=1
复杂度 O(log b);每步取模防溢出;用 long long
LCA / ST表 / 矩阵快速幂 → 📚 超纲
【几何】 三角面积 = 底×高÷2;圆 S=πr² C=2πr;π = acos(-1.0)
海伦:p=(a+b+c)/2,S=√(p(p-a)(p-b)(p-c))
浮点比较用 eps,不能 ==
【图论】 Kruskal:边排序+并查集 O(m log m),稀疏图
Prim:加点,稠密图
Dijkstra:非负权!堆优化 O(E log V);d != dist[u] 跳过过期
Floyd:k 最外层,O(n³)
并查集:路径压缩+按秩合并,比根不比父
INF = 0x3f3f3f3f;不可达判 INF/2
【复杂度】 O(1)<O(log n)<O(√n)<O(n)<O(n log n)<O(n²)<O(n³)<O(2ⁿ)<O(n!)
C++ 每秒约 10⁸ 次简单操作
图遍历 O(V+E);归并空间 O(n);剪枝不改上界
DP 时间 = 状态数 × 转移代价
【优化】 递归 O(2ⁿ) → 记忆化 O(n) → 矩阵快速幂 O(log n)(后两者超纲)
前缀和/打表、排序+双指针、贪心、数学公式
【考试】 单选 15×2 + 判断 10×2 + 编程 2×25 = 100 分,180 分钟本表由各章「考点总结表」聚合而成;若与正文冲突,以正文最新修订为准(见附录 E)。
