OI 训练指南Informatics Olympiad

信息学竞赛 · 进阶训练

从「能做出来」
到「赛场拿得到」

这里不讲语法、排序和二分是什么。写给已经拿到 CSP-J 二等奖以上、能独立写完基础算法的人: 只讲三件事——怎么认出模型、怎么挑出能过的那种做法、怎么在限时下稳住分数。

  • CSP-S 一等
  • NOIP 省一
  • 省选
  • NOI

01 · 定位

先确认:你大概在哪一档

标签不重要,重要的是「独立、限时、不查题解」时的完成率。下表是常见水平的大致对照, 用来决定你该练什么难度的题,而不是用来贴标签。

所在档位 大致能做 典型卡点
CSP-J 二等 模拟、枚举、二分、前缀和、简单 DP 与 BFS 都能独立写;普及- 到普及/提高- 的常规题做得动 提高组的题读完不知道归类;不会写部分分,一没思路就是 0 分
CSP-S 一等 提高- / 提高 的多数题会用模板做出来,图论与数据结构的基本套路熟 变式题没思路;限时下低级错误多,简单题也会翻车
NOIP 省一 提高+ / 省选- 的题能做出大半,会写暴力保底 专题深度不够,复杂建模吃力,常数与实现细节吃亏
省队候选 省选原题能稳定拿部分分,模板熟练到能背写 思维题的质量、时间分配、三小时内的稳定性
一句话自测:拿一套去年的 CSP-S 第二轮原题,限时 3 小时、不查题解、不搜资料,看你实际能拿多少分。 这个分数比任何标签都准——它同时反映了你的模型覆盖面、实现能力和稳定性。

02 · 瓶颈

从二等奖往上,真正卡人的只有三件事

它们都不是「多学几个算法」能解决的,所以才会有人刷了几百道题,分数还是原地不动。

01

模型识别

题面里不会写「这题用线段树」。同样一句「区间修改、区间查询」,可能是差分、可能是树状数组、也可能是带懒标记的线段树, 取决于数据范围与操作类型。练法:每做完一道题,回写一句「题面里的哪句话提示了这个模型」。

  • 题面 → 模型
  • 数据范围 → 做法
02

复杂度选择

一道好题常有四五种做法,只有一种能过。要求你能从 n ≤ 5×10⁴ 条件反射出 O(n√n) 或 O(n log²n), 再映射到具体结构。这比会写模板重要得多。

  • 估复杂度
  • 常数意识
03

稳定输出

会做不等于拿到分。读题漏条件、数组开小、int 溢出、不写暴力、时间分配失控——每一项都在扣分, 而且扣得比难题失分更冤。

  • 部分分
  • 限时训练
  • 检查清单

03 · 关卡

每一关,筛的东西不一样

同样是「考算法」,四个阶段的失分方式完全不同。知道自己现在卡在哪一关,比盲目刷题有效。

  1. 10 月

    CSP-S 提高级

    第一轮筛选基础概念与代码阅读,第二轮才是上机。这一关主要筛「基础模型是否熟练、写得是否稳定」,题目难度跨度大,部分分给得慷慨——不会做也要把暴力写上去。

  2. 11 月

    NOIP 联赛

    3 题 3.5 小时。「CSP-S 一等」与「能拿省一」的区别,往往不在最后一题,而在前面简单题一分不丢、以及第三题拿到 40 分暴力。

  3. 次年春季

    省选

    名额有限,题面开始考建模与专题深度:DP 优化、树上问题、综合数据结构、构造与思维题都会出现。这一层开始明显吃「见得多 + 想得深」。

  4. 暑期

    NOI 与集训队

    两天三题,题量大、部分分设计精细。赛场上「会不会按子任务拿分」直接决定名次,很多人的正解写不完,就是靠分档暴力进的国家集训队。

时间与赛制以官方通知为准:中国计算机学会 CCF

04 · 方法

训练只有三件事:专题、模拟、复盘

任何有效的训练计划都可以拆成这三块。差别只在比例和质量。

专题

一次只打一个模型

连续 2–4 周只做同一个标签的题:从模板题到变式题再到省选原题。集中火力的效率,远高于每天随机刷几道。 结束时写一份题单总结:模型长什么样、常见变形、坑在哪。

模拟

每周 1–2 场,严格限时

3 小时、不查资料、不看题解、中途不换题,按真实赛制提交。模拟赛的价值不在分数, 而在暴露「限时下会犯什么错」——这在平时刷题里永远看不到。

复盘

错题本写四栏

模型、卡点(卡在哪一步)、应得分数、重做记录。不写「粗心」,要写到「二分边界写成 mid 而非 mid+1」这种粒度, 否则下次还犯。

时间配比建议:专题 60% · 模拟与复盘 30% · 模板与工具 10%。 只刷专题会不稳,只打模拟不涨水平,二者必须同时进行。

05 · 误区

到了这个水平,最常见的四个坑

只刷「看着就会做」的题

舒适区刷题是最常见的时间黑洞:题量上去了,分数不动。难度要卡在独立思考后 40–60% 的通过率, 低于 30% 的题先放,高于 70% 的题不用反复做。

不写暴力,直接冲正解

OI 赛制按测试点给分,暴力是从 0 分变 30 分的唯一办法,也是验证正解正确性的工具。 先写暴力、再优化,几乎是所有高分选手的固定动作。

看完题解就翻篇

看懂不等于会写。至少隔一天,关掉题解、不看旧代码再写一遍;写不出来,说明这一步并没有真正掌握。

迷信模板与「大神经验」

模板救不了不会建模,别人的训练量也不是你的计划。真正能抄的是方法:怎么选题、怎么复盘、怎么分配考场时间。

下一步

把上面的判断,变成一张时间表

四个阶段:自查、补硬伤、专题深入、冲刺,每个阶段都带可验证的进入标准。