这是什么: 整个冲刺补丁包的总控台。先看完这一份,再决定接下来看哪一份。
为什么有这套补丁: 你们两位反馈"看不懂讲义"。我们查过了,问题不在你们——L01–L07 是按"有老师讲"设计的算法讲义,密度太高,而且卡住之后没有出口(练习题只有一个一次性展开的完整答案,看了也不知道当初该怎么想到)。
这套补丁补的就是那一层:怎么想到 + 卡住了怎么办 + 大纲里漏掉的零件。
⚠️ 2026-08-13
追加:上面这张表说的全是复赛。第一轮(初赛笔试)在 9
月中下旬,比复赛更早,而且不过就没有复赛。 第一轮的材料是
E0–E12,现在就去看
E0_初赛导航.md。
所以这套补丁的设计原则是:能自学的全部自学,那 2.3 小时只用来打通你自己打不通的地方。
📝 答疑窗口不讲新内容。 新内容都在补丁里。窗口只做一件事:你讲你卡在哪一步,老师补最关键的那一句。 所以——
⚠️ 窗口前必须带着具体问题来。
"这题不会"不是问题,"我知道要用桶,但不知道怎么处理第 k
名"才是问题。带着 S7 里说的那个"卡住记录本"来。
| 次 | 窗口主题 | 课前读 | 课上现场做 | 课后做 |
|---|---|---|---|---|
| 1 | 摸底 + 决策表 + 调试卡 | 本文 + S7 |
扑克牌 P11227 | 数字游戏 P5660(走通 freopen) |
| 2 | 位运算与进制 | S1 |
优秀的拆分 P7071 | 补做上次没做完的 |
| 3 | 排序的稳定性 | S2 |
座位 P14358 | 插入排序 P7910 |
| 4 | 计数排序与手写排序 | S3 |
拼数 P14357 | 直播获奖 P7072 |
| 5 | vector 与 stack | S4 |
— | 公交换乘 P5661 |
| 6 | 取模、gcd 与质数筛 | S5 |
分糖果 P7909 | 解密 P8814 |
| 7 | 考场流程演练 + 总复盘 | S7 第六节 |
限时套卷 T1+T2 | 一元二次方程 P9750(选做) |
⚠️ 课前那份补丁必须先看完再来。 没看就来,窗口就浪费在"讲一遍补丁里写着的东西"上了——那 20 分钟太贵。
暑期之后(8 月下旬 → 10
月):S6(高精度与图的存储,选学)+ 把
S8 里没做完的题补齐 + 完整套卷限时训练。
这张表是整个补丁包最重要的一页。 你们说"算法思路想不通"——多半不是不会写 DP,而是拿到新题时不知道该往哪个方向想。
拿到题先别动手,对着这张表过一遍:
| 题面里出现这类话 | 大概率要用 | 学在哪 |
|---|---|---|
| 求"最少几步""最短路线""最快到达" | BFS | L07 |
| 求"有多少种方案""列出所有可能""全排列/组合" | DFS / 递归 | L06 |
| 求"最大/最小值",且每步有选择、后面的结果依赖前面 | DP | L05 |
| "最大值最小""最小值最大""最多能分成几段" | 二分答案 | L03 |
| 有序数据里找某个值 / 找第一个 ≥ x 的位置 | 二分查找 | L03 |
| 反复询问"某一段的和是多少" | 前缀和 | L04 |
| 反复"把某一段整体加上一个数" | 差分 | L04 |
| "排好序之后……""每次都取当前最划算的" | 排序 + 贪心 | L02 |
| 题目就是一段规则,让你照着执行 | 模拟 | L01 |
| 数值范围很小(≤10⁶)但个数很多 / 要反复查"第 k 大" | 计数数组(桶) | S3 |
| "二进制""异或""2 的幂""每一位" | 位运算 | S1 |
| "最简分数""互质""整除""质数" | gcd / 质数筛 | S5 |
| "相同的元素保持原来的顺序" | 稳定排序 | S2 |
| 给的是"点和点之间有边"而不是网格 | 邻接表 + DFS/BFS | S6(选学) |
再叠一张老表(L01 的复杂度预算),两张一起用:
| n 的范围 | 能接受的复杂度 | 说明 |
|---|---|---|
| n ≤ 20 | O(2ⁿ) | 可以枚举所有子集,暗示搜索 |
| n ≤ 500 | O(n³) | 三重循环 |
| n ≤ 5000 | O(n²) | 双重循环、手写排序 |
| n ≤ 10⁶ | O(n) ~ O(n log n) | 单重循环、sort、前缀和 |
| n ≤ 10⁹ | O(√n)、O(log n)、O(1) | 不能枚举,要数学或二分 |
📝 用法:先用数据范围砍掉一半选项,再用题型表选方向。 比如"求最少步数"且 n ≤ 10⁹——BFS 是 O(点数),走不通,那就得找数学规律。
15 分钟没进展就停下来,按顺序问自己:
S7
第四节的对拍也要用它)S8
的做题顺序表⚠️ 第 5 条最容易被忽略,但命中率最高。出题人不会写废话。
看看这些"闲话"其实是钥匙:
| 题面里那句"闲话" | 其实在说 |
|---|---|
| 直播获奖:"成绩是不超过 600 的非负整数" | 值域很小 → 用桶,别排序 |
| 插入排序:"修改最多 5000 次" | 修改可以慢,查询必须 O(1) |
| 拼数:"保证至少有一个 1~9 的数字" | 不会有前导零,放心全选 |
| 优秀的拆分:"2 的正整数次幂" | 不含 2⁰ → 奇数无解 |
| 乘方(L01):"1 ≤ a, b ≤ 10⁹" | a = 1 时循环停不下来 → 要特判 |
📝 读题时把每个数字、每个限定词都圈出来,逐个问"这句话为什么要写"。
对照 NOI 大纲入门级(NOI_Syllabus_Edition_2025.md 第 2.1
节)。这就是 CSP-J 的全部考纲范围。
| 大纲条目 | 在哪一课 |
|---|---|
| 枚举法、模拟法(2.1.4-2) | L01 |
贪心法(2.1.4-3)、sort(2.1.2-13) |
L02 |
二分法(2.1.4-3)、lower_bound |
L03 |
| 前缀和、差分(2.1.4-4) | L04 |
| 动态规划基本思路、一维 DP、背包 DP(2.1.4-9) | L05 |
| 递归法(2.1.4-3)、深度优先搜索(2.1.4-7) | L06 |
| 广度优先搜索(2.1.4-7)、队列(2.1.3-1) | L07 |
| 文件重定向(2.1.2-12) | L01 + freopen函数用法教程.md |
| 大纲条目 | 补丁 | 优先级 |
|---|---|---|
| 位运算(2.1.2-4)、进制转换(2.1.5-1) | S1 |
必学 |
| 排序的稳定性(2.1.4-6 延伸) | S2 |
必学 |
| 计数排序、冒泡/选择/插入排序(2.1.4-6) | S3 |
必学 |
栈(2.1.3-1)、vector(2.1.2-13) |
S4 |
必学 |
| 取整与模运算、辗转相除、质数与筛法(2.1.5-3) | S5 |
必学 |
| 高精度加减乘(2.1.4-5)、图的表示与存储(2.1.3-4) | S6 |
选学 |
⚠️
这一段原来写的是「链表、树与二叉树、哈夫曼树、二叉搜索树、指针与引用、switch
与
do while、联合体、排列组合与杨辉三角……知道就行,不必现在学」。那句话只对复赛成立,对第一轮是完全相反的,现予撤回。
把 2007–2025 年全部 19 套初赛真题扫了一遍,这些「不必学」的东西出现频率是:
| 知识点 | 出现在几套里 |
|---|---|
| 进制转换 | 19 / 19 |
| 二叉树 | 18 / 19 |
| 栈 | 14 / 19 |
| 链表 | 11 / 19 |
| 队列 | 9 / 19 |
| 完全二叉树 | 7 / 19 |
| 哈夫曼树 | 5 / 19 |
| 指针 | 4 / 19 |
结论分成两条口径,别再混着用:
| 复赛(第二轮,上机) | 第一轮(笔试) | |
|---|---|---|
| 链表/树/哈夫曼/联合体/指针 | 确实几乎用不上,可以不学 | 高频必考,全部要学 |
| 学到什么程度 | — | 只考概念和性质,不要求写实现 |
| 学在哪 | — | E4、E5、E8 |
📝 别慌:初赛考这些只考「性质」——二叉树只考遍历和编号公式,链表只考指针怎么接,哈夫曼只考怎么合并。每份 E 讲义 20~30 分钟看完。
⚠️ 先过第一轮才有复赛。
这套复赛材料(L01–L07、S1–S10)很重要,但它的前提是你先过了第一轮。从
E0_初赛导航.md 开始。
| 文件 | 什么时候看 |
|---|---|
S0_冲刺导航.md |
现在(本文) |
S7_调试自救卡.md |
现在通读一遍,之后随时按症状翻 |
S1_位运算与进制.md |
第 2 次课前 |
S2_排序的稳定性与原下标技巧.md |
第 3 次课前 |
S3_计数排序与手写排序.md |
第 4 次课前 |
S4_vector与stack.md |
第 5 次课前 |
S5_取模_gcd与质数筛.md |
第 6 次课前 |
S8_真题分级提示.md |
每做一道真题时查(先自己想 15 分钟) |
S6_高精度与图的存储.md |
暑期结束之后,选学 |
每份补丁的读法:都是 20~30 分钟的速查卡,不是一节课。看完必须做文末的"30 秒自测",答不上来就回去重看那一小节——自测过不了,说明没真的读进去。
零件补齐了,接下来练的是把零件组装起来。两份新材料:
| 文件 | 干什么用 |
|---|---|
S9_限时训练与思路复盘.md |
先看这份。 一次逐分钟的思路实录("还没想通时那 25 分钟在干什么")+ 限时卷规程 + 复盘表 + 断点定位问卷 |
S10_标程对照册.md |
12 道真题的逐行注释标程。⚠️ 有门槛:每道题至少交过一次才准翻到它那一节 |
⚠️ 下面这一整套是第一轮专用的,和上面的复赛材料并行,不是二选一。
| 文件 | 内容 |
|---|---|
E0_初赛导航.md |
先看这份:题型分值、120 分钟怎么分、五周排期、大纲对照 |
E1–E3 |
计算机常识与网络 / 进制与数据存储 / 数学与计数 |
E4–E7 |
栈队列链表 / 树与二叉树(最高频) / 图与复杂度 / 排序的性质 |
E8 |
C++
语法与易错点(switch、指针、结构体、string、STL) |
E9 / E10 |
阅读程序专项(40 分) / 完善程序专项(30 分) |
E11 |
CSP 2019–2025 七套真题,含完整答案与解析 |
E12 |
NOIP 2007–2018 十二套(只有题面,当知识点题库翻) |
⚠️ S9 和 S10
的顺序不能反。
先限时做、先填复盘表,然后才对照标程。反过来你会以为自己"本来也想得到"——那是错觉,而且会让你一直卡在同一个环节上。
📝 上面那张 7 次课排期表从第 2
次起作废(因为你们提前读完了)。新的循环是:限时卷 →
复盘表 → 对照 S10 → 下一份限时卷,具体见
S9 第二节。
不用焦虑进度,只看三件事:
📝 CSP-J 复赛四道题共 400 分。T1 + T2 全对是 200 分,配上
T3、T4 的暴力部分分,通常已经够一等奖线。(S8
里每道题都写了"先把暴力写对拿部分分",那不是安慰话,是策略。)
⚠️ 最后提醒一句:从今天起,每一道题都自己写代码,哪怕看完了提示 3。看懂思路和写得出来之间隔着很远的距离,而考场上只认后者。