基于 GESP 8级 + NOI 2025 大纲的知识点分析,设计从零基础到国赛水平的完整学习路线。
阶段一 → 阶段二 → 阶段三 → 阶段四 → 阶段五 → 阶段六
│ │ │ │ │ │
C++入门 基础算法 数据结构 高级算法 CSP-S冲刺 NOI级进阶
(1-2月) (2-3月) (3-4月) (3-4月) (2-3月) (持续)
│ │ │ │ │ │
GESP 1-2级 GESP 3-5 GESP 5-7 GESP 7-8 GESP 8级 NOI大纲
目标: 级 级 级 CSP-S 省选+
CSP-J参赛 目标: 目标: 目标: 高分
CSP-J一等奖 CSP-S参赛 CSP-S一等
对标:GESP 1-4级 | 难度:⭐⭐
- C++程序基本结构、编译运行环境搭建
- 变量与常量、基本数据类型(int/long long/double/char/bool)
- 输入输出(cin/cout/scanf/printf)
- 运算符与表达式(算术/关系/逻辑/赋值/位运算入门)
- 类型转换
-
练习:50道基础输入输出题
- if-else / switch 分支结构
- for / while / do-while 循环
- 循环嵌套
- break / continue
-
练习:打印图形、水仙花数、素数判断等
- 一维数组(定义/初始化/遍历)
- 二维/多维数组
- 字符数组与C风格字符串
- string 类型及常用操作(substr/find/erase/insert)
-
练习:矩阵运算、字符串处理题
- 函数定义、声明、调用
- 参数传递(值传递/引用传递/指针传递)
- 函数重载与默认参数
- 递归思想(阶乘/斐波那契/汉诺塔)
- 全局变量与局部变量、作用域
-
练习:函数应用 + 简单递归题
- 结构体(struct)定义与使用
- 结构体数组、结构体排序
- 指针基础(& 和 *)
- 动态内存分配(new/delete)
- 引用(&)与指针的区别
- STL入门:vector / stack / queue
- 文件操作(freopen/fstream)
-
练习:综合性基础题 30-50道
- 冒泡排序、选择排序、插入排序
- 计数排序(桶排序)
- 快速排序、归并排序(原理理解+手写)
- sort() 的使用与自定义比较函数
- 顺序查找、二分查找
- 高精度计算(大整数加减乘除)
-
练习:排序应用题 + 二分答案基础题
对标:GESP 5-7级 | 难度:⭐⭐⭐ | 目标:CSP-J 一等奖
- DFS(深度优先搜索) - 全排列、组合
- BFS(广度优先搜索) - 最短步数问题
- 回溯算法(八皇后/数独)
- 剪枝策略(可行性剪枝/最优性剪枝)
- Flood Fill(连通块)
-
练习:搜索基础题20-30道
- 贪心算法思想与证明思路
- 区间调度/活动选择/最优装载
- 分治法核心思想
- 快速幂
- 最大子段和(分治/DP)
-
练习:贪心+分治题各15-20道
- DP基本概念(状态/转移/边界)
- 递推与DP的关系
- 线性DP - 最长上升子序列(LIS)
- 线性DP - 最长公共子序列(LCS)
- 背包问题九讲(01背包/完全背包/多重背包)
- 分组背包、二维费用背包
-
练习:DP入门题30-50道
- 图的概念(顶点/边/度/连通/有向无向)
- 图的存储(邻接矩阵/邻接表/链式前向星)
- 图的DFS与BFS遍历
- 欧拉路径与欧拉回路
- 拓扑排序(Kahn算法/DFS)
-
练习:图论基础题20-30道
- 进制转换
- 素数判定(试除法/Miller-Rabin入门)
- 素数筛(埃氏筛/欧拉筛)
- 最大公约数(欧几里得)/最小公倍数
- 质因数分解
- 排列组合基础(A/C公式)
- 容斥原理基础
- 杨辉三角与组合数计算
-
练习:数学题20-30道
- 链表实现与应用
- 栈的深入(括号匹配/表达式求值/单调栈)
- 队列的深入(BFS队列/单调队列)
- 二叉树基础(前/中/后序遍历)
- 堆与优先队列(priority_queue)
- 哈夫曼树
- STL深入(set/map/unordered_map)
- 并查集(路径压缩/按秩合并)
-
练习:数据结构应用题各10-15道
对标:GESP 7-8级 | 难度:⭐⭐⭐⭐ | 目标:CSP-S 二等奖以上
- 二叉树进阶(完全二叉树/二叉搜索树)
- 树的直径与重心
- 树的前缀和/差分
- LCA(倍增法)
- 最小生成树(Prim/Kruskal)
- 次小生成树
-
练习:树专题20-30道
- Dijkstra算法(堆优化)
- Bellman-Ford算法
- SPFA优化及判断负环
- Floyd算法
- 差分约束系统
- 强连通分量(Tarjan / Kosaraju)
- 缩点技巧
- 割点与割边(Tarjan)
- 双连通分量
-
练习:最短路+连通性题各15-20道
- 树状数组 BIT(单点修改/区间查询)
- 树状数组(区间修改/单点查询,差分)
- 二维树状数组
- 线段树基础(建树/单点修改/区间查询)
- 线段树懒标记(区间加/区间乘)
- 线段树维护多种信息
- 动态开点线段树
-
练习:线段树/树状数组题20-30道
- 字符串哈希(单哈希/双哈希)
- KMP算法(前缀函数/next数组)
- Manacher算法(最长回文子串)
- 扩展KMP(Z函数)
- Trie字典树
- 01-Trie(异或极值)
-
练习:字符串题15-20道
- 区间DP(石子合并/矩阵链乘)
- 树形DP(树上最大独立集/树的最长路径)
- 换根DP
- 状压DP(TSP/覆盖问题)
- 数位DP基础
- DP单调队列优化
- 概率DP / 期望DP
-
练习:DP进阶题20-30道
- ST表(RMQ问题)
- 平衡树基础(set/map的红黑树理解)
- Treap实现
- 树链剖分(重链剖分)
- 可持久化线段树(主席树)
- 莫队算法(普通莫队/带修莫队)
- 分块思想
-
练习:高级数据结构题15-20道
对标:GESP 8级高分 + CSP-S 一等奖 | 难度:⭐⭐⭐⭐⭐
- 最大流概念与Ford-Fulkerson方法
- Dinic算法 + 当前弧优化
- 最大流最小割定理
- 二分图判定(染色法)
- 二分图最大匹配(匈牙利算法)
- 二分图最小点覆盖/最大独立集
- 费用流(SPFA+EK)
-
练习:网络流题10-15道
- 斜率优化DP
- 四边形不等式优化
- 决策单调性
- 状态压缩DP深入
- DP套DP思想入门
-
练习:DP优化题10-15道
- AC自动机(多模式匹配)
- 后缀数组(SA)入门 - 倍增法
- 后缀数组的应用(height/lcp)
- 中国剩余定理(CRT/exCRT)
- 高斯消元
- 矩阵快速幂
- 博弈论(Nim游戏/SG函数)
- 计算几何基础(向量/凸包/线段相交)
- 扫描线算法
-
练习:综合应用题15-20道
- CSP-S历年真题模拟(近5-8年)
- GESP 8级模拟题
- 薄弱环节专项训练
- 考试技巧(骗分技巧/对拍/时间分配)
- NOIP历年真题体验
-
练习:完整模拟考试5-10套
对标:NOI 大纲 NOI级 | 难度:⭐⭐⭐⭐⭐⭐ | 目标:省选资格/NOI奖牌
此阶段在完成前四个阶段后,根据个人目标选择性学习。
- 上下界网络流(无源汇/有源汇)
- 最小割模型(最大权闭合子图/二元关系)
- 最大权闭合子图
- 平面图与对偶图最短路
- 全局最小割(Stoer-Wagner)
- LCT(Link-Cut Tree)
- 树套树(线段树套平衡树)
- K-D Tree
- 左偏树/配对堆
- 块状链表
- 虚树
- 点分治/边分治
- 动态DP(树剖+矩阵)
- 李超线段树
- 笛卡尔树
- 后缀自动机(SAM)及基础应用
- 广义后缀自动机
- 回文自动机(PAM)
- 后缀平衡树
- Lyndon分解与最小表示法
- 莫比乌斯反演与应用
- 杜教筛 / Min_25筛
- 数论分块与整除分块
- 多项式全家桶(FFT/NTT/FWT)
- 多项式求逆/exp/ln/sqrt
- 生成函数(OGF/EGF)系统学习
- 群论与Burnside引理/Pólya计数
- 线性规划/单纯形法
- 类欧几里得算法
- 一般图最大匹配(带花树算法)
- 二分图最大权匹配(KM算法)
- 一般图最大权匹配
- 稳定匹配(Gale-Shapley)
- 支配树(Dominator Tree)
- 2-SAT深入
- 斯坦纳树
- Prufer序列
- 矩阵树定理/Kirchhoff定理
- LGV引理
- 树上启发式合并(dsu on tree)
- 凸包(Graham/Andrew)
- 旋转卡壳
- 半平面交
- 平面最近点对
- 随机增量法
- 动态凸包
- 三角剖分
- 三维计算几何基础
- CDQ分治
- 整体二分
- WQS二分
- Slope Trick
- 插头DP
- 模拟退火与爬山算法
- A* 与 IDA*
- 双向搜索
| OJ | 网址 | 适合阶段 |
|---|---|---|
| 洛谷(Luogu) | luogu.com.cn | 全阶段,最推荐 |
| AcWing | acwing.com | 阶段1-4 |
| Codeforces | codeforces.com | 阶段3+ |
| AtCoder | atcoder.jp | 阶段2+ |
| UOJ | uoj.ac | 阶段4-5 |
| LOJ | loj.ac | 阶段3-5 |
| POJ | poj.org | 经典题库 |
| 阶段 | 推荐书籍 |
|---|---|
| 阶段1-2 | 《信息学奥赛一本通》 |
| 阶段1-3 | 《算法竞赛入门经典》(紫书) |
| 阶段2-4 | 《算法竞赛进阶指南》 |
| 阶段4-5 | 《挑战程序设计竞赛》 |
| 阶段5 | 《算法导论》(CLRS) - 参考 |
| 全阶段 | 《OI Wiki》(oi-wiki.org) |
- 洛谷题单:
【算法1-1】模拟与高精度→【算法1-7】搜索 - 洛谷题单:
【数据结构1-1】线性表→【数据结构1-4】图的基本应用 - 洛谷题单:
【动态规划1】线性DP→【动态规划2】背包DP - AcWing 算法基础课 + 算法提高课
- 按顺序学习:每个阶段为后续阶段打基础,不建议跳阶段
- 理论+实践:每学一个知识点至少做 3-5 道练习题
- 做笔记:记录坑点和技巧,建立自己的"错题本"
- 定期复习:每周留 1 天复习前面学过的内容
- 参加比赛:Codeforces/AtCoder 的 rated 比赛是最好的实战检验
- 对拍练习:学会写暴力 + 对拍,培养调试习惯
- 不要死磕:一道题超过 2 小时还没思路就去查看题解,学习思路后自己实现
文档生成时间:2026-05-14 基于:GESP C++ 8级 大纲 + NOI 2025 大纲