chen_zhe @ 2026-07-02 18:29:51
无论是编程初学者还是具备一定基础的选手,选择合适的题目都是提升算法能力的关键。为此,洛谷建立了一套题目难度分级体系,帮助用户根据自身水平精准筛选训练题目,实现高效进阶。
洛谷的难度由易到难共划分为以下档次,并配有对应的标识颜色:
| 名称 | 颜色 | 国际站名称 |
|---|---|---|
| 入门 | 红色 | Red |
| 普及- | 橙色 | Orange |
| 普及 | 黄色 | Yellow |
| 普及+/提高- | 绿色 | Green |
| 提高 | 青色 | Cyan |
| 提高+/省选- | 蓝色 | Blue |
| 省选/NOI- | 紫色 | Purple |
| NOI/NOI+/CTS | 黑色 | Black |
难度评定由题目出题人、管理员及高水平用户共同完成,难免带有一定的主观判断。同时,题目难度可细分为思维难度与实现难度:部分题目侧重考查思维深度,而另一些则对代码实现能力有更高要求。此外,不同专长领域的选手在解答同一道题时,所感知的难度也可能存在差异。因此,该难度体系仅作为训练参考。
下文将逐一说明各难度档次的大致界定标准及典型代表题目。
入门难度是体系中最低的等级,面向编程新手,主要考察分支结构、循环、数组以及简单字符串处理等基础内容,旨在帮助选手夯实基本功。一般而言,选手在掌握一门编程语言的基本语法后,即可顺利通过该难度的题目。通常而言,CSP-J 的第一题为入门难度。
代表试题:
普及-难度试题主要涉及基础算法与简单数据结构,例如简单的模拟、枚举、排序、贪心等算法的简单应用,也可能涉及队列、栈等基础数据结构,以及初等数论的基本概念。一般而言,选手在熟练完成入门难度试题的基础上,经过数十至一百小时的系统学习与训练,完成 100 余道普及-难度的试题,即可顺利完成该难度的试题。通常,CSP-J 的第二题属于普及-难度。如果目标是 CSP-J 组的复赛二等,需要稳定做出该难度试题。
代表试题:
普及难度试题仍以基础算法为核心,但在思维深度和代码实现复杂度上,相较普及-难度均有明显提升。题目所涉及的枚举、二分、贪心、动态规划、搜索等算法已不再是简单直接的应用,要求选手具备初步的建模能力,能运用这些算法解决综合性更强的问题。在熟练完成普及-难度的基础上,选手通常需要经过约 200 至 300 小时的系统训练,并完成 100 至 200 道该难度的题目,才能较为稳定地解答此类试题。该难度一般对应 CSP-J 的第三题。若以 CSP-J 复赛一等奖或 CSP-S 复赛二等奖为目标,则需要具备稳定通过该难度题目的能力。
代表试题:
普及+/提高-难度在普及难度的基础上进一步拔高,要求选手具备更扎实的基础。除需要对基础算法进行更灵活的运用外,该阶段还引入了更复杂的模型,如较复杂的动态规划(区间 DP、树形 DP)、图论建模与相关算法(最短路、生成树),以及并查集、树状数组、线段树等数据结构,均要求熟练掌握。同时,选手需要开始具备从问题模型中提炼出非直观的重要性质与结论的能力,不过这类推导通常仍较为简单。通常,在较熟练完成普及难度试题的基础上,选手需要经过约 300 至 500 小时的系统学习与训练,并完成 200 至 300 道该难度的题目,方能较为稳定地解答此类试题。若以 CSP-J 高分或满分为目标,或以 CSP-S 一等奖为目标,则需要具备较大概率通过该难度题目的能力。
代表试题:
提高难度标志着选手正式迈入较高水平算法竞赛的门槛。该阶段会引入更高难度的数据结构与算法,但更常见的仍是对先前所学的基础算法与数据结构进行更广泛、更综合的运用。选手不仅需要具备从问题模型中提炼出非直观性质与结论的能力,还需完成一定难度的推导,并能熟练地将已学算法与数据结构进行综合应用。通常,在较熟练完成普及+/提高-难度试题的基础上,选手需经过约 500 至 800 小时的系统学习与训练,方能较为稳定地解答此类试题。若以 CSP-S 强省一等奖或 CCF 奖项认证 7 级或大部分省份的 NOIP 一等奖为目标,则需要具备较大概率通过该难度题目的能力。
代表试题:
提高+/省选-难度的试题已具有相当高的挑战性。除引入后缀数组、AC 自动机、平衡树等复杂的高级数据结构以及线段树合并等较高级技巧外,该阶段还考查更困难、更综合的模型提炼能力。选手需能够从复杂的模型中提炼出多条关键结论作为突破口,并综合运用已学的较困难算法与数据结构进行优化求解。这一阶段要求选手具备一定的直觉与洞察力、较强的数学推导能力和长链条思考能力,并能熟练编写较为复杂的代码并快速完成调试。通常,在较熟练完成提高难度试题的基础上,选手需经过约 800 至 1000 小时的系统学习与训练,方能较大概率在赛场上解答此类试题。若以 NOIP 强省一等奖或多数省份三倍省队分数线为目标,则需具备较大概率通过该难度题目的能力。
代表试题:
省选/NOI-难度的试题已相当于竞赛省队门槛。该难度涉及大量高级算法、数据结构与高等数学知识,如快速傅里叶变换、复杂网络流建模、Polya 定理、后缀自动机、Link-Cut Tree 等。除掌握这些高阶算法本身外,该阶段更注重高度复合的模型提炼、转化与创造性构造能力。选手需具备敏锐的直觉与洞察力、深厚的数学推演功底,能从试题中提炼出多条深刻且非平凡的关键性质,并拥有严密而持久的长链条逻辑推理能力,在有限的比赛时间内编写规模庞大、细节繁杂的代码。通常,在较熟练完成提高+/省选-难度试题的基础上,选手需经过约 1500 至 2000 小时的系统学习与训练,方能较为稳定地在赛场上解答此类试题。若以多数省份省队或 NOI 银牌为目标,则需具备较大概率通过该难度题目的能力。
代表试题:
这是最难一档的试题,是 NOI 金牌、IOI 金牌难度的试题。这档试题考察极为深刻的数学理论与技巧,如线性规划与拟阵、Lyndon 树和 Runs 定理、复杂的形式幂级数问题,以及各类高等或者前沿算法在高度综合场景下的创造性组合运用。题目往往具有极强的综合性,要求选手能熟练运用高等的视角以及工具,完成题目模型构建、多条关键性质挖掘到算法设计与实现的完整过程。选手需具备超凡的直觉、深厚的数学推演能力与创新性思维,能够驾驭极长链条的严密推理。通常,选手需在省选难度的基础上,经过 2000 小时以上的高强度训练,才有希望在赛场上解答此类试题。若以 NOI 金牌为目标,则需具备较大概率通过该难度题目的能力。
代表试题:
分界线以下为 NOI+/CTS 难度的代表试题,如果后续进行了黑题难度拆分(拆分成 NOI 难度,和 NOI+/CTS 难度,但是由于技术原因没法做成五彩斑斓的黑色),将会以下列试题作为 NOI+/CTS 难度试题的标准:
by chen_zhe @ 2026-07-02 18:30:24
需要注意,这是临时的难度定义,部分试题的难度,以及各档难度的定义可能会在之后有调整。
by zhangjizhi @ 2026-07-02 18:30:26
qp
by GCOI @ 2026-07-02 18:30:30
qp
by zjl2013 @ 2026-07-02 18:30:34
qp
by zhangqh @ 2026-07-02 18:30:50
qp
by LINYUHENG2 @ 2026-07-02 18:30:59
qp
by GCOI @ 2026-07-02 18:31:00
第二!!!
by ABCD789 @ 2026-07-02 18:31:04
qp
by LINYUHENG2 @ 2026-07-02 18:31:22
祖宗之法可以变!
by UnionRE @ 2026-07-02 18:31:35
qp