从入门到 IOI 的完整指南

信息学奥赛
完整学习指南

系统化的竞赛编程学习路径 · 涵盖 GESP、CSP、NOIP、NOI、APIO、IOI 全阶段 · 精选优质学习资源与实战建议,助你在算法竞赛的道路上稳步前行

6+
竞赛阶段
100+
核心算法
50+
优质资源
练习题目
Learning Roadmap

完整学习路线

从青少年编程启蒙到国际信息学奥林匹克,清晰的阶段划分让你明确每一步的目标

Level 1 · 启蒙阶段

GESP 1-4 级

青少年编程能力等级考试 · 入门级

CCF (中国计算机学会) 主办的青少年编程能力认证,分 Python 和 C++ 两个语言方向。1-4 级注重语言基础和基本编程思维,适合零基础起步。

Python 基础 C++ 语法 变量循环 数组字符串 简单模拟
Level 2 · 进阶入门

GESP 5-8 级

青少年编程能力等级考试 · 进阶级

GESP 高级别对应 CSP-J 的能力要求。5-8 级涵盖递归、结构体、指针、STL 使用、基础算法、简单数据结构,是踏入 OI 大门的桥梁。

递归递推 STL 结构体 排序算法 贪心策略 简单 DP
Level 3 · 入门联赛

CSP-J

非专业级软件能力认证 · 初级

CCF 组织的入门级联赛,面向初中及以下学生。分初赛(笔试选择)和复赛(编程)两轮,复赛通过者可获省级证书,是进入 NOIP 的必经之路。

基础算法 枚举模拟 DFS/BFS 二分查找 前缀和差分 基础图论
Level 4 · 提高联赛

CSP-S

非专业级软件能力认证 · 提高级

面向高中生的提高级联赛,难度显著高于 CSP-J。涵盖大量图论算法、动态规划、高级数据结构,是通往 NOIP 与省选的关键台阶。

图论算法 动态规划 线段树 并查集 数论 树形算法 字符串
Level 5 · 全国联赛

NOIP

全国青少年信息学奥林匹克联赛

由 CCF 主办的全国性青少年信息学竞赛,是国内最具影响力的高中生信息学赛事之一。获得一等奖可作为高校强基计划、综合评价的重要参考。

综合算法 网络流入门 高级 DP 树链剖分 数学思维 竞赛策略
Level 6 · 省选/冬令营

NOI 省选 & WC/CTSC

各省选拔赛 · 冬令营 · 集训队选拔

NOIP 优秀者可参加各省省选,选拔进入 NOI。冬令营 (WC) 与集训队选拔 (CTSC) 是进入国家集训队的重要途径,题目难度大幅提升。

网络流 数据结构进阶 高等数学 多项式 博弈论 计算几何
Level 7 · 全国决赛

NOI

全国青少年信息学奥林匹克竞赛

国内最高级别的青少年信息学竞赛,金牌选手直接保送清北等顶尖高校。前 50 名进入国家集训队,进一步选拔 IOI 国家队。

FFT/NTT 高级图论 分块/莫队 数据结构套结构 生成函数 创新思维
Level 8 · 亚太赛

APIO

亚太地区信息学奥林匹克

面向亚太地区的国际性信息学奥赛,IOI 前的重要练兵场。中国队通常派出集训队成员参加,是与国际选手切磋的宝贵机会。

IOI 风格 部分分策略 交互题 思维创新 国际视野
Level 9 · 巅峰

IOI

国际信息学奥林匹克竞赛

全球青少年信息学的最高殿堂,每年一届。中国队由国家集训队 4 名成员组成,历年来成绩斐然。金牌得主往往被世界顶尖学府争相录取。

世界顶级 部分分战术 时间管理 数学功底 创造力 心理素质
Knowledge System

各阶段知识体系

每个竞赛阶段都有其独特的知识要求,清晰的知识地图助你有的放矢地准备

GESP 1-4 级

编程启蒙 · 语言基础
  • Python/C++ 基础语法:变量、数据类型、输入输出
  • 控制结构:if/else、for/while 循环、break/continue
  • 函数与作用域:参数传递、返回值、递归入门
  • 数组与字符串:一维/二维数组、字符串处理
  • 简单模拟:按题目要求实现流程
  • 基础数学:进制转换、素数判断、最大公约数

GESP 5-8 级

进阶编程 · 算法入门
  • 结构体/类:自定义数据类型、面向对象基础
  • 指针与引用:C++ 内存模型、动态数组
  • STL 容器:vector、map、set、queue、stack
  • 排序算法:冒泡、选择、插入、快速、归并
  • 基础搜索:线性、二分、DFS/BFS 入门
  • 贪心算法:区间调度、活动选择等经典问题
  • 基础 DP:斐波那契、爬楼梯、01 背包入门

CSP-J 入门级

基础数据结构 · 经典算法
  • 枚举与模拟:全排列、组合枚举、复杂模拟
  • DFS/BFS:迷宫问题、图的遍历、连通块
  • 二分答案:最大化最小值、最小化最大值
  • 前缀和差分:一维/二维前缀和、区间更新
  • 基础图论:邻接表、拓扑排序、最短路 Dijkstra
  • 数论基础:GCD、快速幂、素数筛
  • 栈队列应用:表达式求值、单调栈入门

CSP-S 提高级

高级数据结构 · 复杂算法
  • 动态规划:线性 DP、区间 DP、树形 DP、状压 DP
  • 图论进阶:SPFA/Bellman-Ford、Floyd、最小生成树
  • 并查集:路径压缩、按秩合并、带权并查集
  • 线段树/树状数组:区间查询、区间修改、懒标记
  • 字符串算法:KMP、字符串哈希、Trie 字典树
  • 数论进阶:扩展欧几里得、中国剩余定理、欧拉函数
  • 树上算法:LCA、树的直径、树上差分

NOIP 全国联赛

综合应用 · 竞赛策略
  • 网络流基础:最大流 Dinic、最小割、二分图匹配
  • 高级 DP:数位 DP、概率 DP、DP 优化(单调队列/斜率)
  • 树链剖分:重链剖分、路径查询修改
  • 字符串进阶:AC 自动机、Manacher、后缀数组入门
  • 组合数学:排列组合、卡特兰数、容斥原理
  • 竞赛策略:骗分技巧、部分分策略、时间管理
  • 数据结构综合:主席树、平衡树入门

NOI / IOI 顶尖

前沿算法 · 创新思维
  • 多项式算法:FFT、NTT、多项式求逆、分治 FFT
  • 高级数据结构:LCT、Splay、可持久化、分块、莫队
  • 复杂图论:费用流、点分治、圆方树、支配树
  • 字符串高阶:SAM 后缀自动机、后缀数组、回文自动机
  • 高等数学:生成函数、伯努利数、Lucas 定理、群论
  • 计算几何:凸包、半平面交、旋转卡壳、KD-Tree
  • 创新思维:随机化、启发式合并、根号平衡、猜结论
Learning Resources

精选学习资源

从入门教程到高级题库,从视频课程到社区讨论,一站式学习资源尽在此处

国内首选
洛谷 Luogu

国内最流行的 OI 在线题库,题目分级清晰,社区活跃。有丰富的题解、日报、比赛资源。是每位 OIer 必备的平台。

luogu.com.cn
高质量
LibreOJ (LOJ)

开源题库项目,汇集了 NOI 系列、省选、集训队等高质量题目。题面清晰、评测环境标准,是深入学习的好去处。

loj.ac
国际知名
Codeforces

俄罗斯知名 OJ,每周 2-3 场 Contest,是全球程序竞赛选手的主战场。题目质量高,Editorial 详细,是练习思维题的最佳平台。

codeforces.com
课程完善
AcWing

yxc 老师创办的平台,主打算法基础课与提高课。课程体系完整,题目配套精心设计,适合系统学习算法。

acwing.com
蓝桥杯 OJ

面向蓝桥杯选手,同时也是 OI 训练的重要平台。收录了大量经典题目和历届真题,题库规模庞大。

lanqiao.cn
经典老牌
POJ (北大)

北京大学在线判题系统,历史悠久的经典 OJ。虽然界面古朴,但题目经典,是许多前辈 OIer 的启蒙之地。

poj.org
Virtual Judge

虚拟评测平台,聚合 POJ、CF、AtCoder 等数十个 OJ 的题目,可以在一处提交多平台题目,方便组织虚拟比赛。

vjudge.net
日本 OJ
AtCoder

日本著名 OJ,Beginner Contest (ABC)、Regular Contest (ARC)、Grand Contest (AGC) 三大系列,题目设计精巧。

atcoder.jp
USACO

美国计算机奥赛,分 Bronze/Silver/Gold/Platinum 四档。每月比赛,题目设计教育性强,配套 USACO Guide 学习资源。

usaco.org
LeetCode 力扣

面试算法题库首选,题目分类清晰。虽偏向工程面试,但对 OI 基础算法巩固有很大帮助,题目讨论区质量高。

leetcode.cn
SPOJ

波兰 OJ 平台,拥有数万道题目,涵盖各种难度,是刷题选手的宝库。多种语言支持,评测机制严格。

spoj.com
CodeChef

印度知名 OJ,每月三场比赛 (Long/Cook-off/Lunchtime)。Long Contest 长达 10 天,适合深度思考难题。

codechef.com
GitHub for OIers

GitHub 使用指南

优秀 OIer 都在使用 GitHub 管理代码、模板与刷题记录,开启开源之旅

如何用好 GitHub

  1. 建立个人代码模板库 将常用算法(线段树、并查集、图论算法等)整理成模板仓库,题目分类存放,方便调用与复习。
  2. 刷题记录管理 按 OJ、按算法、按难度组织你的 AC 代码。使用 README.md 记录每题思路和坑点。
  3. 参与开源项目 为 OI Wiki、CP Algorithms 等开源项目贡献内容,既能巩固知识,又能建立技术影响力。
  4. 使用 GitHub Pages 搭建个人博客,分享题解、学习笔记。使用 Jekyll、Hexo 等静态生成器快速上手。
  5. 参考顶级选手仓库 学习世界级选手(如 tourist、jiangly)的代码风格与算法实现,取其精华。
  6. Fork 与 Star 优质资源 Fork 感兴趣的仓库进行修改,Star 收藏后续查阅,建立自己的 OI 资源库。
Information Channels

竞赛信息渠道

及时获取比赛通知、报名信息、成绩公告,不错过任何重要机会

CCF 中国计算机学会

NOI 系列、CSP-J/S 等赛事的官方主办方,发布正式通知、报名信息、成绩查询等权威内容。

NOI 全国青少年信息学奥林匹克

NOI 官网,发布 NOI、NOIP、冬令营、CTSC、集训队等所有官方赛事的详细信息。

洛谷比赛列表

汇总各大 OJ 的比赛信息,支持订阅提醒。每周都有大量比赛,是国内选手的赛事日历。

CLIST.by 全球赛事汇总

汇集全球 100+ 个 OJ 的比赛日程,支持 iCal 订阅、时区调整,是关注国际赛事的必备工具。

Codeforces Contests

CF 官方比赛列表,每周 Div1/Div2/Div3/Div4 全覆盖。可注册加入 Round 或作为 Virtual Contest 补题。

AtCoder Contests

AtCoder 比赛日程,每周 ABC (Beginner)、ARC (Regular)、AGC (Grand) 系列比赛。

GESP 官网

CCF 编程能力等级考试官方网站,查询考试时间、报名方式、认证证书等信息。

CSP-J/S 官网

CSP 非专业级软件能力认证官方网站,发布 CSP-J/S 的报名、赛程、成绩等所有信息。

IOI 国际信息学奥赛官网

IOI 官方网站,每年 IOI 举办信息、试题、成绩、纪念资料。国际最高级别赛事的权威源头。

APIO 亚太赛官网

亚太地区信息学奥赛官方网站,各年赛事、试题、成绩公告的权威渠道。

OI 微信公众号

关注 "CCF 编程能力等级认证"、"洛谷"、"信息学竞赛" 等公众号,第一时间获取赛事推送。

各省信息学官网

各省信息学奥赛组织机构官网,发布本省 NOIP 报名、联赛安排、省选选拔等重要信息。

Learning Tips

学习建议 & 心得

前辈 OIer 们总结的宝贵经验,少走弯路,高效进步

01

循序渐进,不跳阶段

基础不牢地动山摇。GESP 阶段就把语法和基本算法打扎实,再进阶 CSP-J。切勿盲目做超纲题,反而会打击信心。

02

每日刷题,保持手感

OI 是需要长期投入的事业,每天至少 1-2 小时投入,不要中断超过 3 天。手感就像肌肉记忆,断了很难恢复。

03

认真看题解,多角度学习

做不出的题必看题解。看完不是结束,要理解思路后自己独立实现一遍。同一题看多份题解,能获得不同视角。

04

整理错题,建立知识体系

用博客或 GitHub 仓库整理错题、思路和坑点。定期回顾,把错题变成自己的知识财富,而非再犯同样错误。

05

参加比赛,实战检验

模拟练习永远不如真实比赛。多参加 CF、AtCoder 的 Round,即使被虐也是宝贵经验。比赛后一定复盘补题。

06

找到伙伴,组队学习

OI 之路孤独且漫长,找到志同道合的伙伴一起进步。加入学校社团、OJ 讨论组、QQ 群,交流才能长进。

07

独立思考,拒绝抄袭

OI 培养的是思维能力。遇到难题不要直接搜代码,先思考 30 分钟以上。抄来的 AC 没有意义,思考出的解才是自己的。

08

平衡学业与竞赛

OI 是加分项而非全部。文化课不能落下,身体健康、心理状态同等重要。可持续的努力比一时的疯狂更有价值。

09

熟悉工具链

掌握 Vim/VSCode 快速编辑技巧,熟悉 GDB 调试、对拍脚本。工具的熟练度直接影响比赛效率,平时就要练习。

10

保持谦逊,享受过程

OI 世界永远有比你强的人,不要因排名焦虑。享受解决问题的快乐,享受与算法共舞的每一个瞬间。

11

比赛策略要练习

NOIP/NOI 5 小时比赛,时间分配至关重要。先浏览所有题,先做有把握的,难题拿部分分。这些都需要模拟练习。

12

心理建设不可少

比赛失利、CE 掉分是常事。学会调节情绪、快速恢复。心态稳的选手往往能在关键时刻发挥出色。