Appearance
附录 D · 学习路径与备考规划
面向已通过六级、准备攻克七级的读者:知识地图 → 三阶段路径 → 8 周计划 → 自测清单 → 考场时间分配 → 六级→七级衔接 → 向八级衔接。
一、知识地图(依赖关系的正确顺序)
第1章 总览(先建立全局视野)
│
├─> 第2章 数学库函数 ──── 相对独立,可随时插入
│
├─> 第4章 图的定义及遍历 ──┐
│ (概念 + 两种存储 │ 依赖:DFS/BFS(六级已学,此处扩展到图上)
│ + DFS/BFS) ↓
│ 第5章 泛洪算法(Flood Fill)
│
└─> 第3章 复杂动态规划
(二维DP → LIS → 区间DP → LCS → 滚动数组)
│
└─> 第6章 哈希表 ──── 相对独立,也可提前学推荐顺序: 第1章 → 第4章(图)→ 第5章(泛洪)→ 第3章(复杂DP)→ 第2章(数学库)→ 第6章(哈希表)
理由:图与泛洪是前后依赖的整体,必须连着学;复杂 DP 难度最高,放在精力最充沛的中段;数学库和哈希表以记忆 + 模板为主,可后置速成。
二、三阶段路径
| 阶段 | 目标 | 产出 |
|---|---|---|
| 第一阶段 · 建骨架(2~3 周) | 五个知识块概念过关,模板能读懂 | 每章「必背速记卡」能默写 |
| 第二阶段 · 刷题固形(3~4 周) | 各章「实战练习」做完并订正 | 错题本成型;LIS/LCS/区间DP 能默写 |
| 第三阶段 · 模考冲刺(1~2 周) | 限时整套训练 | 稳定 70+ 分 |
三、8 周计划(每周约 6~8 小时)
| 周次 | 章节 | 重点任务 | 验收标准 |
|---|---|---|---|
| 第 1 周 | 第 1 章 + 第 4 章前半 | 总览;图的概念、度、完全图边数 | 边数公式三连(无向完全/有向完全/邻接表长度)全对 |
| 第 2 周 | 第 4 章后半 | 邻接矩阵与邻接表;DFS/BFS 图上实现 | 两种存储各写一遍遍历 |
| 第 3 周 | 第 5 章 | Flood Fill:四/八连通、岛屿数量、面积 | 能同时写出 BFS 版和 DFS 版 |
| 第 4 周 | 第 3 章前半 | 二维 DP、LIS | LIS 的 O(n²) 写法能默写 |
| 第 5 周 | 第 3 章中段 | 区间 DP(石子合并类) | 三层循环顺序能讲清理由 |
| 第 6 周 | 第 3 章后半 | LCS、滚动数组、记忆化搜索 | LCS 下标对齐不再错 |
| 第 7 周 | 第 2 章 | <cmath> 全套函数 + 精度专题 | 速查表能默写,弧度制不再错 |
| 第 8 周 | 第 6 章 + 全书复盘 | 哈希函数、冲突处理、unordered_map | 自测清单全打勾 |
四、自测清单(第 8 周使用,全打勾即可报名)
- [ ] 1. 能说出
log/log10/log2三者的区别 - [ ] 2. 能把 30° 正确转成弧度并调用
sin - [ ] 3. 能解释为什么
pow()不能直接当数组下标 - [ ] 4. 能写出浮点比较的正确写法(eps)
- [ ] 5. 能默写 LIS 的 O(n²) 模板,并说明答案是
max(dp) - [ ] 6. 能默写 LCS 的二维 DP,并说清下标偏移
- [ ] 7. 能写出区间 DP 的三层循环(len → i → k)
- [ ] 8. 能解释 01 背包一维化为什么必须倒序
- [ ] 9. 能说出无向完全图、有向完全图的边数公式
- [ ] 10. 能写出邻接矩阵与邻接表两种存储的 DFS/BFS
- [ ] 11. 能独立写出"岛屿数量"(BFS 与 DFS 各一版)
- [ ] 12. 能说清四连通与八连通的方向数组差异
- [ ] 13. 能列举至少两种哈希冲突处理方法及其缺点
- [ ] 14. 能说出
map与unordered_map的三点区别 - [ ] 15. 两套自测卷均在 150 分钟内完成,得分 ≥ 70
五、考场时间分配(180 分钟)
| 阶段 | 时长 | 做什么 |
|---|---|---|
| 审题与单选 | 0~35 分钟 | 15 道单选,2 分钟/道,卡住先标记跳过 |
| 判断题 | 35~55 分钟 | 10 道判断;数学库函数题多在此处 |
| 编程题审题 | 55~70 分钟 | 两道一起读,先做有把握的 |
| 编程题 1 | 70~110 分钟 | 编码 + 样例自测 + 边界(空图、n=1) |
| 编程题 2 | 110~155 分钟 | 至少拿部分分(暴力/特判) |
| 检查 | 155~180 分钟 | 复查填涂、文件名、输出格式 |
⚠️ 图论编程题的边界最易失分:n=1、无边、自环、重边、图不连通——都要试。
六、常见备考误区
| 误区 | 后果 | 正确做法 |
|---|---|---|
以为 log 是以 10 为底 | 判断/选择必错 | 记牢:log=ln,log10=lg,log2=lb |
LIS 答案取 dp[n-1] | 整题 0 分 | 答案是 max(dp[0..n-1]) |
| 区间 DP 循环顺序写反 | 状态未算就调用 | 记住 len 在最外层 |
| 二维数组开太大 | MLE | 能滚动就滚动;估算内存(int 4 字节) |
| Flood Fill 用 DFS 且图很大 | 栈溢出 | 大数据优先 BFS |
| visited 在出队时标记 | 重复入队、超时 | 入队瞬间就标记 |
| 哈希冲突题靠直觉 | 概念题丢分 | 四种方法优缺点抄一遍 |
七、六级 → 七级衔接自测(先修知识)
| # | 先修点 | 自测题 | ✅ |
|---|---|---|---|
| 1 | DFS / BFS(树上) | 能写出二叉树的三种递归遍历 | ⬜ |
| 2 | 递归与回溯 | 能写出全排列并解释"撤销" | ⬜ |
| 3 | 一维 DP | 能写出爬楼梯 / 最大子段和 | ⬜ |
| 4 | 01 背包一维优化 | 能默写倒序版本并说明原因 | ⬜ |
| 5 | 栈与队列 | 能用队列实现层序遍历 | ⬜ |
| 6 | 结构体与 vector | 能定义 vector<int> g[N] 这类邻接表 | ⬜ |
| 7 | 类与对象 | 能写一个带构造函数的类 | ⬜ |
| 8 | 时间/空间复杂度 | 能估算 dp[n][n] 的内存占用 | ⬜ |
💡 衔接提示:七级最大的思维跃迁是"把树上学的 DFS/BFS 迁移到一般图",以及"把一维 DP 升级为二维 DP"。这两件事做好了,七级就成了一半。
八、通过之后:向八级衔接
八级是 GESP 最高级,在七级基础上的新增内容:
| 八级知识块 | 与七级的衔接点 |
|---|---|
| 计数原理、排列与组合 | 全新:加法原理、乘法原理、A 与 C |
| 杨辉三角 | 与组合数递推 C(n,m) = C(n-1,m-1) + C(n-1,m) 打通 |
| 倍增法 | 全新:快速幂是主战场,与七级数学库呼应 |
| 代数与平面几何 | 初中数学:方程求解 + 面积公式 |
| 图论算法及综合应用 | 七级的"图遍历" → 最小生成树 + 最短路(Kruskal/Prim/Dijkstra/Floyd) |
| 时间与空间效率分析 | 七级的 DP 复杂度 → 系统化的复杂度分析 |
| 算法优化 | 七级的滚动数组 → 一般化的优化方法 |
过渡期两周计划:
- 第 1 周:补齐组合数学(排列组合公式 + 杨辉三角),这是八级第 2~4 章的地基;
- 第 2 周:把七级的图遍历升级——先学并查集,再进入 Kruskal 与 Dijkstra。
本规划按每周 6~8 小时设计;若每天只能学 30 分钟,请把周期拉长到 12~16 周。
