【打破信息差】萌新认识与入门算法竞赛
祝愿每一位选手都可以在竞赛中享受一份纯粹的快乐。
阅前须知
关于本文
本文旨在为有志于了解与入门算法竞赛的大学新生及其他学习者提供一份较为系统的讲解与引导。
本文章首次完成于 2025 年 7 月 1 日。
本文章最近一次更新于 2025 年 7 月 7 日。
后续或有对内容的修正与补充,最新版内容请以 GitHub 版本为准。
作者:Resot
知乎主页:Resot
GitHub 主页:【打破信息差】萌新认识与入门算法竞赛
博客 wiki 版本:【打破信息差】萌新认识与入门算法竞赛
版权与使用声明
本文已在 GitHub 平台开源,欢迎大家通过提交Issues为本文做内容补充与完善。同时开放本文的非商业性转载权限,严禁将本文用于任何形式的商业用途。
核心目标
本文的核心目标是帮助初学者快速掌握算法竞赛的基础知识与核心常识,为顺利入门算法竞赛奠定坚实基础。
学习路径与方法论
针对具体问题需进行具体分析,不存在普适所有人的“放之四海而皆准”的学习方法。我们充分尊重并支持每位学习者根据自身情况,自主选择最适合自己的学习路径。本文所阐述的训练方法,系笔者基于过往实践经验提出的相对合理化方案,仅供各位学习者参考借鉴。
内容范围
本文内容侧重于帮助算法竞赛新手快速理解相关常识性知识,并对训练方向提供宏观指导。具体深入的训练细节,将不在本文范畴之内。
文章大纲

阅读索引
[TOC]
学术诚信
学术诚信在算法竞赛中更是重中之重,所以我将学术诚信放在了文章的第一个章节。
在算法竞赛的求索之路上,我们追求卓越的代码与精妙的算法,这固然重要。然而,超越所有荣誉与排名的,是对学术诚信的坚定秉持。每一次代码的提交,都应是独立思考的结晶,真实反映自身能力的提升。作弊行为不仅损害了竞赛的公平基石,更是对个人学习机会的自我剥夺。维护这一原则,方能赢得社区的尊重,并为未来的学术与职业生涯奠定坚实基础。
常见术语
| 缩写 | 全称(中文) | 简要说明 |
|---|---|---|
| ACM | Association for Computing Machinery(美国计算机协会) | 国际计算机领域最悠久的专业组织之一。早期 ICPC 以“ACM‑ICPC”冠名,因此“ACM”在华语社区常作为 ICPC 的口语简称。2018 年起 ICPC 独立运营,但“ACM”一词仍沿用。 |
| ICPC | International Collegiate Programming Contest(国际大学生程序设计竞赛) | 面向在校本科生/研究生的团队式编程竞赛,被视为大学阶段最高级别赛事。区域赛(Regional)、全球总决赛(World Finals)两级赛制,三人一队,共用一台电脑,五小时内解题。 |
| CCPC | China Collegiate Programming Contest(中国大学生程序设计竞赛) | 由中国高校计算机教育研究会主办的年度性大学生程序设计竞赛。旨在提高中国大学生的程序设计能力和计算机应用水平,是国内规模最大、影响力最广的大学生程序设计赛事之一。其赛事组织形式与 ACM/ICPC 相似。 |
| CF | Codeforces | 俄罗斯团队运营的在线评测与竞赛平台,以“Rating”体系闻名。常见赛事有 Round、Div.1/2/3、Educational Round 等,赛后可即时看到排名与官方题解。 |
| AC / WA / TLE … | Accepted / Wrong Answer / Time Limit Exceeded 等判题结果 | 在线评测返回的常见状态码:AC 表示通过全部测试点;WA 输出错误;TLE 超时;MLE 超内存;RE 运行期错误;CE 编译错误等。 |
| OJ | Online Judge(在线评测系统) | 一种自动化系统,用于接收、编译、运行参赛者提交的程序代码,并根据预设的测试数据和评测标准(如正确性、运行时间、内存占用)给出评测结果。它是算法竞赛的核心平台。 |
| IOI | International Olympiad in Informatics(国际信息学奥林匹克) | 面向全球中学生的信息学竞赛,旨在发掘、鼓励和表彰世界各地在信息学方面有才能的青少年。通常侧重于算法设计、数据结构和数学思维。 |
| NOI | National Olympiad in Informatics(中国全国青少年信息学奥林匹克竞赛) | 中国国内最高水平的青少年信息学竞赛。由中国计算机学会 (CCF) 主办,旨在选拔和培养优秀的计算机人才,并组建中国国家队参加 IOI。 |
| IDE | Integrated Development Environment(集成开发环境) | 软件开发中用于提供程序开发环境的应用程序。它通常包括源代码编辑器、编译器/解释器、调试器和构建自动化工具。在算法竞赛中,选手可以使用 IDE 编写、调试和测试代码。 |
| 黑话 | 说明 |
|---|---|
| ap | a 批,泛指打算法竞赛的选手。 |
| xcpc | icpc 和 ccpc 的统称。 |
| 封榜 | 一些赛事会在比赛结束前一个小时封榜,即榜单会停滞在结束前一个小时的状态。 |
| 滚榜 | 因为封榜的存在所以大家无法直接得知最终排名,会在比赛结束后开滚榜环节,从后到前依次公布最终排名。 |
| vp | virtual participation,打一场在之前已经举办过的比赛。 |
| 对拍 | 一种程序,很多时候不确定自己写的符合时空复杂度的代码是否正确,但是可以写出来一个复杂度爆炸但是绝对正确的暴力代码,对拍程序可以实现生成若干随机数据,然后比较两个程序在随机数据下是否输出答案一致,常见于 oi 类比赛。 |
| hack | 有时候虽然写了错误代码,但是侥幸通过了所有测试点,但是其他选手可以自己造数据来让你的代码无法通过题目,同时也是 cf 的特性之一。 |
| fst | failed system testing,cf 的大多数比赛在赛时只评测一小部分的测试点,在赛后会统一评测所有的测试点,所以会有赛时通过了题目赛后发现其实没过的情况,这就称为 fst。 |
| spj | special judge,题目的评测方式,例如有些题目必须输出 YES 才能判断为正确,而对于 spj 无论 YES yes yEs 等都可以判断为正确,如果题目是 spj 的话一般会在题目的输出格式中说明。 |
| ak | 表示这场比赛的所有题目全部拿到满分。 |
| rp++ | 人品加一,用于表示祝福。 |
| bx | 拜谢 的简写。 |
| orz/or2 | orz 看起来像一个人认输跪倒在地,or2 的屁股更翘。 |
| tql | 太强了 的简写。 |
| %/膜 | 膜拜 的简写。 |