← 竞赛体系
COURSE · 课程路径

GESP 5级

CURRICULUM

课程大纲 · 能力地图

按「大类 → 难度 → 前后顺序」组织,共 153 个能力标签。 其中 66 个为相对「GESP 4级」新增,其余为前置级别已覆盖; 同一大类内循序渐进,绿色为已备教案、可直接进入学习;灰色为编写中。

新增 标记表示该知识点是「GESP 4级」基础上本级别新加入的,需重点学习。

仅展示相对「GESP 4级」新增的内容 (66)关闭可查看完整大纲(含前置级别已覆盖的知识点)

复杂度与算法分析

10 个标签 · 10 已就绪
序号知识点能力目标操作
48O(log n)新增02-A2-1理解 O(log n) 时间复杂度:每次操作把问题规模减半(如二分查找),所需步数约为 log₂n,增长极慢。
49O(n log n)新增02-A2-2理解 O(n log n):线性乘对数,是归并、快排这类基于比较的排序能达到的最优复杂度。
50O(n²)新增02-A2-3理解 O(n²):双重循环的典型复杂度,常见于朴素排序与朴素枚举,适合 n 较小的场景。
51多项式复杂度新增02-A2-4理解多项式复杂度 O(n^k):运行时间是关于 n 的多项式,次数 k 越低越快。
52指数复杂度新增02-A2-5理解指数复杂度 O(2^n) 与 O(c^n):随 n 爆炸增长,常见于暴力枚举/回溯,需要剪枝或换算法。
53空间复杂度新增02-A2-6区分时间复杂度与空间复杂度:空间复杂度衡量算法额外占用的内存随 n 的增长。
54最坏情况新增02-A2-7理解最坏情况复杂度:输入最不利时算法需要的资源上界,是可靠性的保证。
55最好情况新增02-A2-8理解最好情况复杂度:最有利输入下的资源消耗下界,常用于"已接近目标"的快速路径。
56平均情况新增02-A2-9理解平均情况复杂度:对所有可能输入取期望,比最坏更贴近"典型"表现。
57嵌套循环复杂度新增02-A2-10掌握分析嵌套循环复杂度:内外层循环次数相乘,注意"与 n 无关"的内层与"随外层变化"的内层。

数组与基础预处理

8 个标签 · 8 已就绪
序号知识点能力目标操作
106前缀和新增04-A2-1掌握一维前缀和:预处理 s[i]=a[0..i-1] 的和,使任意区间和 O(1) 查询。
107二维前缀和新增04-A2-2掌握二维前缀和:预处理后任意子矩阵和 O(1) 查询,使用容斥公式。
108差分新增04-A2-3掌握一维差分:对区间加减的多次操作后,用 O(1) 标记、最后 O(n) 还原,避免每次 O(n) 修改。
109二维差分新增04-A2-4掌握二维差分:对子矩阵整体加减,用 O(1) 标记、最后 O(nm) 还原。
110前缀最值新增04-A2-5掌握前缀最值:预处理前缀的最大值/最小值,支持 O(1) 查询"从开头到某位置"的极值。
111后缀最值新增04-A2-6掌握后缀最值:从某位置到结尾的极值,常与前缀最值配合解决"两侧约束"问题。
112前后缀统计新增04-A2-7综合运用前缀与后缀预处理,解决"左侧/右侧满足条件的个数或极值"类问题。
113离线预处理新增04-A2-8理解离线思想:先把所有询问收集起来,按某种顺序统一处理(常配合排序或前缀结构),降低总复杂度。

排序

7 个标签 · 7 已就绪
序号知识点能力目标操作
129快速排序新增05-A2-1掌握快速排序:选轴(pivot)分区,使左边≤轴、右边≥轴,再递归处理左右。
130归并排序新增05-A2-2掌握归并排序:分治地把两半分别排好,再合并两个有序序列,稳定且稳定 O(n log n)。
131sort新增05-A2-3掌握语言内置排序(Python sorted / C++ sort)的用法与复杂度,能直接对数组排序。
132自定义比较新增05-A2-4掌握自定义比较函数/键,按"自己定义的规则"排序(如按绝对值、按字符串长度)。
133多关键字排序新增05-A2-5掌握多关键字排序:先按主关键字,相同再按次关键字(用元组 key 或稳定排序组合)。
134结构体排序新增05-A2-6掌握对"结构体/对象数组"按某个字段排序(如学生按成绩)。
135稳定排序应用新增05-A2-7掌握"稳定排序"的实际应用:保留并列数据的原有顺序,或实现多关键字排序。

查找与二分

7 个标签 · 7 已就绪
序号知识点能力目标操作
149lower_bound新增06-A2-1掌握 lower_bound:在有序数组中找"第一个 ≥ x"的位置(C++ lower_bound / 手写二分)。
150upper_bound新增06-A2-2掌握 upper_bound:找"第一个 > x"的位置,与 lower_bound 配合统计某值的个数。
151二分边界新增06-A2-3掌握二分求"边界":第一个满足 / 最后一个满足某条件的位置(答案落在有序判定函数上)。
152二分最大值新增06-A2-4掌握"二分答案求最大":当答案越大越难满足时,二分找满足条件的最大值。
153二分最小值新增06-A2-5掌握"二分答案求最小":当答案越小越难满足时,二分找满足条件的最小值。
154二分答案新增06-A2-6综合理解"二分答案":把最优化问题转为"判定 mid 是否可行"的二分搜索。
155单调性新增06-A2-7理解单调性是二分的前提:只有"判定结果随 mid 单调变化"才能用二分。

递归、分治

5 个标签 · 5 已就绪
序号知识点能力目标操作
190分治思想新增08-A2-1掌握分治:把问题分成独立子问题,各自解决后合并结果(与单纯的递归区别在于"合")。
191归并排序新增08-A2-2用"分治"视角重写并理解归并排序的分解与合并过程。
192快速排序新增08-A2-3用分治视角理解快排:选轴分区使问题独立,再递归处理左右子区间。
193二分递归新增08-A2-4掌握二分递归:在递归中把规模对半(而非减一),复杂度降为 O(log n) 或 O(n log n)。
194递归搜索新增08-A2-5掌握用递归进行搜索/枚举(如 DFS 遍历、子集/排列生成),理解搜索树与回溯。

贪心

4 个标签 · 4 已就绪
序号知识点能力目标操作
205贪心思想新增09-A1-1理解贪心:每一步都做"当前看起来最优"的选择,期望得到全局最优。
206局部最优新增09-A1-2理解"局部最优"与"全局最优"的关系,学会判断一个问题能否贪心。
207简单贪心新增09-A1-3通过经典简单贪心题(区间选点、拼接等)巩固贪心套路。
208直接选择新增09-A1-4掌握"直接选择"型贪心:每步直接挑当前最优元素(如选择排序、选最大可用)。

数据结构

5 个标签 · 5 已就绪
序号知识点能力目标操作
263数组新增11线性结构-A1-1掌握数组:连续存储、随机访问 O(1)、按下标读写,是其他数据结构的基础。
264vector新增11线性结构-A1-2掌握 C++ vector(动态数组):自动扩容、尾部增删 O(1)、随机访问,是可变长数组。
265stack新增11线性结构-A1-3掌握栈:后进先出(LIFO),支持压栈/弹栈/取顶,常用于括号匹配、DFS。
266queue新增11线性结构-A1-4掌握队列:先进先出(FIFO),支持入队/出队/看队首,常用于 BFS、缓冲。
267deque新增11线性结构-A1-5掌握双端队列 deque:两端都能 O(1) 增删,兼具栈与队列功能,常用于滑动窗口。

链表

4 个标签 · 4 已就绪
序号知识点能力目标操作
283单链表新增12-A1-1掌握单链表:节点含值域与 next 指针,只能单向遍历,插入/删除只需改指针 O(1)(已知前驱)。
284双链表新增12-A1-2掌握双链表:节点含 prev 与 next,可双向遍历,删除/插在前驱或后继都方便。
285循环链表新增12-A1-3理解循环链表:尾节点 next 指向头,形成环,适合"轮转/环形"场景。
286链表遍历新增12-A1-4掌握链表遍历与常见处理:从头指针沿 next 走到尾,期间可计数、查找、反转等。

位运算 / 状态压缩

5 个标签 · 5 已就绪
序号知识点能力目标操作
503位掩码新增23-A2-1理解位掩码:用一个整数的二进制位表示一组布尔状态,第 i 位为 1 表示第 i 个选项被选中。
504集合表示新增23-A2-2用整数表示一个有限集合(元素为 0..N-1),元素 i 在集合中当且仅当第 i 位为 1。
505子集判断新增23-A2-3掌握用位运算判断一个集合是否为另一个集合的子集/超集,以及如何枚举子集。
506lowbit新增23-A2-4掌握 lowbit:取出整数二进制最低位的 1 及其后的 0 所构成的值,公式为 x & (-x)。
507popcount新增23-A2-5掌握 popcount(统计整数二进制中 1 的个数),以及位运算统计技巧。

数学与数论

7 个标签 · 7 已就绪
序号知识点能力目标操作
523欧几里得算法新增24基础数论-A2-1掌握欧几里得算法(辗转相除法)求最大公约数 gcd:gcd(a,b)=gcd(b,a mod b)。
524埃氏筛新增24基础数论-A2-2掌握埃拉托斯特尼筛法(埃氏筛)在 O(n log log n) 内求出 [2,n] 内的所有素数。
525线性筛新增24基础数论-A2-3理解线性筛(欧拉筛):每个合数只被其最小质因子筛一次,达到 O(n) 求素数。
526唯一分解定理新增24基础数论-A2-4理解算术基本定理:任一大于 1 的整数可唯一分解为若干素数幂的乘积。
527快速幂新增24基础数论-A2-5掌握二进制快速幂,在 O(log b) 内计算 a^b(或 a^b mod m)。
528模运算新增24基础数论-A2-6掌握模运算基本律:加、减、乘可分别在模内运算,注意减法与除法(逆元)的处理。
529模逆元基础新增24基础数论-A2-7理解模逆元:在模 m 下,若 gcd(a,m)=1,则存在 a⁻¹ 使 a·a⁻¹ ≡ 1 (mod m);当 m 为素数可用费马小定理。

组合数学

4 个标签 · 4 已就绪
序号知识点能力目标操作
545加法原理新增25-A1-1理解加法原理:完成一件事有若干类互斥的方法,总方法数等于各类方法数之和。
546乘法原理新增25-A1-2理解乘法原理:完成一件事需若干步,每步方法数相乘得总数。
547基础排列新增25-A1-3掌握排列数:从 n 个不同元素中取 k 个排成一列的方法数 P(n,k)=n!/(n-k)!。
548基础组合新增25-A1-4掌握组合数:从 n 个不同元素中取 k 个(不计顺序)的方法数 C(n,k)=n!/(k!(n-k)!),并知 C(n,k)=C(n,n-k)。