信息学奥赛学习路线图

从 GESP 考级到 IOI 国际赛——给学生一张主干路径,给家长一张决策地图。

最后更新 2026/05· 面向中国大陆赛制(CCF / GESP / NOI 系列)

主路径时间轴

典型路径:小学高年级入门 → 初中冲刺 CSP-S/NOIP → 高中省选/国家集训队。下面是各节点的常见年龄段(可前后浮动 1-2 年)。

启蒙
小学 1-3 年级
GESP 1-4 级
小学 3-6 年级
GESP 5-8 级 / CSP-J
小学高年级 - 初一
CSP-S / NOIP
初二 - 高一
省选 (NOI 省队选拔)
高一 - 高二
NOI / CTSC / APIO
高二
IOI 国家队
高二 - 高三

各阶段:能力要求与知识点

每张卡片描述:这是什么考试 / 何时考 / 需要掌握什么 / 通过/获奖之后的下一步。

入门 · 启蒙

编程启蒙

小学低年级 · 不参加正式比赛
能力目标
  • 建立"指令-执行"心智模型
  • 能读写顺序、循环、条件
  • 会使用一种 IDE / 在线编辑器
常见路径
  • Scratch 拖拽编程
  • Python 入门(turtle / 简单输入输出)
  • 过渡到 C++ 语法
CCF GESP · 1-4 级

GESP 初级 (1-4 级)

每年 3 / 6 / 9 / 12 月 · 笔试+机试
能力要求
  • 1-2 级:Scratch / Python 基本语法
  • 3 级:C++ 基础语法、表达式、分支循环
  • 4 级:数组、字符串、函数、简单算法
知识点
  • 变量类型、I/O、运算符优先级
  • 一维/二维数组遍历
  • 排序(冒泡/选择)、查找(顺序/二分)
作用
  • 检验基础语法掌握度,作为 CSP-J 预热
  • 部分学校升学综合素质加分参考
CCF GESP · 5-8 级

GESP 中高级 (5-8 级)

同上 · 难度递进至接近 CSP-J/S
知识点
  • 5 级:递归、贪心、模拟、结构体
  • 6 级:排序进阶、栈/队列、前缀和差分
  • 7 级:STL、动态规划入门、图论基础
  • 8 级:树论、最短路、复杂 DP、数论
定位
  • 5-6 级对应 CSP-J 水平
  • 7-8 级对应 CSP-S 水平
  • 是 CSP 之外的稳定能力凭证
CCF · CSP-J/S

CSP 入门级 (J) / 提高级 (S)

每年 10 月 · 第一轮笔试 + 第二轮上机
CSP-J 知识点
  • 基础数据结构:数组、链表、栈、队列
  • 基础算法:排序、搜索、模拟、贪心
  • 简单 DP、递归回溯
CSP-S 知识点
  • 图论:DFS/BFS、最短路、最小生成树、Tarjan
  • DP:线性 / 区间 / 树形 / 状压 / 数位
  • 数论:素数、GCD、快速幂、组合数
  • 数据结构:并查集、线段树、树状数组、ST 表
  • 字符串:KMP、Trie、字符串哈希
作用
  • CSP-S 一等是 NOIP 报名资格基础
  • 许多重点高中信息学特长生认可凭证
NOIP · 全国联赛

NOIP 全国联赛

每年 11 月 · 仅限 CSP-S 获奖者报名
能力要求
  • CSP-S 全部知识点的稳定输出
  • 题目相对 CSP-S 更"综合"、更考察思维
  • 4 题 · 5 小时 · C++ 单语言
意义
  • 获奖是省选/集训队的硬通货
  • "强基计划""科技特长"重要凭证
  • 部分高校认可一等奖等同省一
省选 · 省队选拔

NOI 省队选拔赛

每年 3-4 月 · 各省独立命题
知识点(在 NOIP 基础上)
  • 高级数据结构:平衡树、可持久化、莫队、LCT
  • 图论进阶:网络流、2-SAT、点分治
  • 多项式:FFT/NTT、生成函数
  • 数论进阶:Lucas、CRT、莫比乌斯反演
  • 计算几何、博弈论
选拔规模
  • 每省 5-15 名进入省队,代表本省赴 NOI
NOI / CTSC / APIO

国家级 / 亚太级

NOI 7 月 · APIO 5 月 · CTSC 5 月
NOI
  • 全国信息学奥赛,省队成员参加
  • 前 50 名进入国家集训队
  • 集训队成员获得清北等顶尖高校保送资格
APIO
  • 亚太地区赛,线上+本地考点
  • 国内成绩参考省选/集训队
CTSC
  • 中国队培选,集训队再次筛选
  • 结合 APIO 成绩选出 IOI 国家队 4 人
IOI · 顶峰

IOI 国际奥赛

每年 7-9 月 · 全球举办地不同
规模
  • 每国 4 人 · 全球 ~90 个国家 ~350 名选手
  • 2 天比赛 · 每天 3 题 · 5 小时
题目特点
  • 不限于已有算法套路,强调建模与思维
  • 部分题为交互题、子任务给分
意义
  • 金牌前列可获 MIT / 清北等录取关注
  • 编程竞赛体系的全球顶峰

学习进度评估

勾选你已掌握的知识点(打勾=能独立写出代码并理解原理),系统自动评估你当前所处阶段并给出下一步建议。进度保存在本地浏览器,刷新不丢失。

📊 总览

0% 0 / 0 个知识点已掌握
🎯 当前阶段评估

未开始

开始勾选你已掌握的知识点,这里会给出实时建议。

进度自动保存到本浏览器

核心资源

每类资源只挑最重要的 3-5 个,贪多反而不练。

⚖️OJ 在线评测

  • 洛谷 Luogu中文免费 国内最主流 OI 平台,题库 + 训练 + 题解齐全,新手首选
  • AcWing中文 y总算法基础课/提高课,系统性最强的付费课
  • Codeforces英文免费 国际主流,每周 Round 训练实战手感,有评级
  • AtCoder英文免费 日本 OJ,题目质量高、思维性强,ABC 适合中阶
  • NOI Online (CCF)中文 官方真题与模拟赛入口

📚系统教程 / 网课

📺视频博主 (B 站为主)

  • 董晓算法B 站 算法可视化做得最好的中文博主,数据结构尤其推荐
  • AcWing 官方B 站 y总课程片段,赛事讲解
  • 灵茶山艾府B 站 LeetCode/算法 思路讲解,DP 讲得清楚
  • ErrichtoYouTube CF 顶级红名直播解题,英文最经典 CP 频道
  • William LinYouTube 前 IOI 美国队,直播 CF Div1 思考过程
  • SecondThreadYouTube 主题式算法讲解,题目分类清晰

🐙GitHub 资源

💬论坛 / 社区

📖关键书籍

GitHub 零基础上手指南

如果你完全没碰过 GitHub,从下面第 0 步开始按顺序看。每一步都附上界面位置和英文按钮中文对照。

0GitHub 是什么?为什么 OI 选手要用?

GitHub 是一个"代码版的网盘 + 社交平台"。每个人有自己的账号,账号下面可以建很多 仓库 (Repository),每个仓库就是一个文件夹,可以装代码、笔记、模板。

对 OI 选手来说,GitHub 的四个用途:

  • 云端备份 — 你的题解、模板、错题集永久保存,换电脑也能拉下来
  • 看大神代码 — tourist、jiangly 这些世界顶尖选手的板子都公开放在 GitHub 上
  • 下载学习资源 — OI-Wiki、《算法竞赛进阶指南》代码、各类题解仓库都在 GitHub
  • 展示自己 — 申请大学、夏令营、社团时,一个有内容的 GitHub 主页是加分项
💡 不需要会"软件开发",只把它当"带版本历史的网盘"用就够了。

1解决英文界面问题(最重要的一步)

GitHub 没有官方中文版,但有几种可行方案:

方案 A · 浏览器自动翻译(零门槛,推荐新手)

  • Chrome / Edge: 打开 github.com,在网页空白处点右键 → 选 "翻译成中文" / "Translate to Chinese"
  • Safari: 地址栏右边有翻译图标,点击 → 中文
  • iPhone/iPad: Safari 同样在地址栏左侧有 "aA" 菜单 → 翻译为中文
优点:零安装。缺点:代码里的英文也会被翻译,看代码时记得临时关掉。

方案 B · 安装"GitHub 汉化插件"(更优雅)

  1. 打开 github.com/maboloshi/github-chinese(这就是个 GitHub 仓库)
  2. 点页面里的 Install from Greasy Fork 链接
  3. 它会引导你先装一个叫 Tampermonkey(油猴) 的浏览器扩展
  4. 装完油猴后再点"安装脚本",就大功告成
  5. 之后访问 github.com 自动汉化界面,代码区域保持英文

方案 C · 用国内"代理站点"看代码

  • Gitee(码云) — 国内同类平台,很多 OI 仓库有镜像
  • HelloGitHub — 中文社区,精选 GitHub 上的好项目

2注册账号(5 分钟)

  1. 打开 github.com/signup
  2. Email 填邮箱(用 QQ 邮箱、网易邮箱都可以;Gmail 更稳)
  3. Password 设密码(至少 15 位,或 8 位含数字)
  4. Username 起用户名 — 这是你的 GitHub ID,以后地址是 github.com/你的用户名,起一个简短好记的英文 ID
  5. 过人机验证 → 输入邮箱验证码 → 完成
  6. 登进去后会问你"会几年代码""感兴趣什么",随便选,点 Skip 跳过也行
⚠️ 国内访问 GitHub 偶尔会很慢或打不开。如果加载不出来:换 WiFi/4G 试试;或者用 Gitee 暂时替代;或者配置 hosts(进阶,参考 GitHub520 项目)。

3建你的第一个仓库(放你的题解)

登录后,右上角点 "+" 号 → 选 New repository(新建仓库)

  • Repository name(仓库名): 比如 my-oi-solutions
  • Description(描述,可选): 比如 "我的 OI 题解和模板"
  • Public(公开) — 想让别人看见就选这个;选 Private(私有) 则只有你能看
  • 勾上 Add a README file(自动生成一个介绍文件)
  • Create repository(创建仓库)

建完之后,你就有了一个属于自己的仓库:github.com/你的用户名/my-oi-solutions

怎么往里加文件(最简单的方法,不用装 Git):

  1. 在仓库页面点 Add file → Upload files(上传文件)
  2. 把你电脑上的 .cpp 文件拖进去
  3. 下面填一句话描述(叫 commit message,比如 "添加 P1001 题解")
  4. Commit changes(提交) 就保存了
💡 推荐文件夹结构:
luogu/P1001.cpp — 洛谷题目
codeforces/Round900/A.cpp — CF 比赛
templates/dijkstra.cpp — 自己整理的模板
notes/segment-tree.md — 知识点笔记

4用 GitHub 学习别人的代码

这是 OI 选手用 GitHub 最大的好处。

找模板库 — 关注这些账号

怎么用(以 tourist 为例):

  1. 打开 github.com/the-tourist/algo
  2. 点右上角 ⭐ Star(收藏,方便以后找到 — 类似微博点赞)
  3. Code → Download ZIP 把整个仓库下载下来
  4. 或者点某个 .cpp 文件直接在网页上读

用搜索找特定算法的实现

  1. 登录后,顶部搜索框输入比如:segment tree lazy language:C++
  2. 左侧选 Code(代码搜索)
  3. 可以看到全世界选手对"懒标记线段树"的不同写法

5关注顶尖选手,看他们在做什么

访问任何人的主页(比如 github.com/jiangly),点头像旁边的 Follow(关注)

之后你的首页 github.com 会显示他们最近 star 了什么仓库、push 了什么代码,相当于"算法圈微博"。

推荐先关注:

  • jiangly — 中国队江立
  • the-tourist — Gennady Korotkevich,世界第一
  • ksun48ecnerwalaBenq — IOI/ICPC 顶尖选手
  • EndlessCheng — 灵茶山艾府

6进阶:用 Git 命令(可选)

等你熟练后,每次写完题就不想再"点 Upload files"那么麻烦了,可以装 Git 命令行工具,一键同步。

四个最常用命令(在题目所在文件夹打开终端):

# 第一次:把仓库下载到本地
git clone https://github.com/你的用户名/my-oi-solutions.git

# 之后:写完代码,三连
git add .                              # 把改动登记
git commit -m "添加 P1234 题解"         # 写一句话描述
git push                               # 推送到 GitHub

Windows 装 Git:git-scm.com/download/win;Mac 自带,或 brew install git

更好用的图形客户端:GitHub Desktop(中文界面,所见即所得,推荐新手用这个代替命令行)。

7英文术语 ↔ 中文对照表

记住这张表,GitHub 上 80% 的按钮你都看得懂。

英文中文什么意思
Repository / Repo仓库一个项目,相当于一个文件夹
Commit提交保存一次修改的快照,带描述
Push推送把本地修改上传到 GitHub
Pull拉取把 GitHub 上的最新版下载到本地
Clone克隆把整个仓库下载到本地
Fork分叉把别人的仓库复制一份到你的账号
Star星标收藏,类似点赞
Watch关注订阅仓库更新通知
Follow关注(人)关注某个用户
Issue问题报 bug、提建议、讨论的地方
Pull Request (PR)合并请求"我改好了,请把我的修改合并进去"
Branch分支同一个仓库的不同版本线
Merge合并把两个分支的修改合起来
README说明文档仓库首页自动显示的介绍
Gist代码片段分享单个小代码片段,比建仓库轻量
Profile个人主页你的 GitHub 首页
Public / Private公开 / 私有仓库谁能看
Sign in / Sign up登录 / 注册

8新手常见疑问

Q: 公开仓库,我的代码会被抄袭吗?
A: OI 选手的题解大家都公开,GitHub 自动保留作者和时间戳,反而是证据。除非是正在打的赛事代码,否则不用担心。

Q: 一次 commit 应该多大?
A: 新手不用纠结,"做完一道题就 commit 一次"是好习惯。

Q: 不小心传上去了不想给人看的东西怎么办?
A: 仓库设置 → Danger Zone(危险区域)→ Make private(设为私有),或者直接 Delete(删除整个仓库)重建。

Q: GitHub Copilot 能用吗?
A: 学生可申请免费版(GitHub Education),但 OI 训练强烈建议关掉 — AI 自动补全会毁掉你的算法思考过程。日常笔记/作文可以用。

Q: 我能在 GitHub 上写博客吗?
A: 能。叫 GitHub Pages,免费托管静态网页。很多 OI 选手的题解博客就是这么搭的。教程见 pages.github.com

家长 · 决策视角

不是每个孩子都要走到 IOI,关键是判断"何时止盈"和"如何衔接升学"。

投入产出预期

启蒙到 CSP-J 一等约 2-3 年;CSP-S 一等约再加 1-2 年;省队需要全脱产级投入。每升一级筛掉 ~70-90% 的人。

升学衔接 · 初中

多数重点中学认可 CSP-J 一等 / GESP 7 级以上作为信息学特长生敲门砖。具体看目标校招生简章。

升学衔接 · 高中

CSP-S 一等、NOIP 一等是科技特长 / 强基计划重要凭证;省一以上更显著。

升学衔接 · 大学

NOI 银牌及以上可冲击清北强基/保送;集训队成员保送清北。普通高校以"奖项+高考"组合通道为主。

何时考虑转向

若孩子在 CSP-J 阶段持续无一等,可考虑 GESP 稳证书路线,或转向数学 / 物理 / 信息 (Kaggle/AI) 等方向。

家庭支持

提供稳定的练习时间(每周 8-15 小时)、不在低谷期施压、关注睡眠胜过关注做题量。