第 2 章 · 03 工具与比赛入门(对应 docs/contest/ + docs/tools/)


文档摘要

第 2 章 · 03 工具与比赛入门(对应 docs/contest/ + docs/tools/) 本节定位:对应 OI Wiki + 。难度:入门。前置依赖:本章 01-02 节(有语言和算法基础)。 ⚠️ 注意:算法竞赛是"写代码 + 上机评测"的闭环。光看书不刷题,等于学游泳不下水。这一节教你如何进入这个闭环:用什么平台、怎么提交、怎么看结果。 知识地图 docs/contest/ 页面地图 讲比赛本身和竞赛常识: 比赛类型 :竞赛总览。 :OI 系列(NOI / NOIp / CSP-J / CSP-S / IOI),中国青少年信息学竞赛体系。 :ICPC(International Collegiate Programming Contest),大学生程序设计竞赛,三人一队。

第 2 章 · 03 工具与比赛入门(对应 docs/contest/ + docs/tools/)

本节定位:对应 OI Wiki docs/contest/ + docs/tools/。难度:入门。前置依赖:本章 01-02 节(有语言和算法基础)。

⚠️ 注意:算法竞赛是"写代码 + 上机评测"的闭环。光看书不刷题,等于学游泳不下水。这一节教你如何进入这个闭环:用什么平台、怎么提交、怎么看结果。

知识地图

docs/contest/ 页面地图

docs/contest/ 讲比赛本身和竞赛常识:

比赛类型

  • docs/contest/index.md:竞赛总览。
  • docs/contest/oi.md:OI 系列(NOI / NOIp / CSP-J / CSP-S / IOI),中国青少年信息学竞赛体系。
  • docs/contest/icpc.md:ICPC(International Collegiate Programming Contest),大学生程序设计竞赛,三人一队。
  • docs/contest/resources.md:学习资源汇总(书籍/题单/网站)。
  • docs/contest/roadmap.md:OI Wiki 官方学习路线图,本地图的分级体系与它兼容。

竞赛技能

  • docs/contest/io.md:输入输出(快读快写/格式控制/多测处理),实战必读。
  • docs/contest/interaction.md:交互题(你的程序与评测机交互,二分猜答案等)。
  • docs/contest/common-mistakes.md:常见错误汇总(爆 int/数组越界/没开 long long/RE 原因)。
  • docs/contest/common-tricks.md:常见技巧(读入优化/宏定义/对拍)。
  • docs/contest/dictionary.md:术语词典。

出题与评测(了解)

  • docs/contest/problemsetting.md:出题。
  • docs/contest/problems.md:题目类型说明。

评测系统原理

竞赛提交后由评测系统(OJ,Online Judge)自动评测。原理:

  1. 题目提供一组测试数据(输入文件 + 对应的输出文件,通常 10-25 组)。
  2. 你的程序对每个输入文件运行,产生输出。
  3. 评测机比较你的输出与标准输出,全部一致才算 AC。
  4. 限制:时间限制(通常 1 秒,超时 TLE)和内存限制(通常 256MB,超内存 MLE)。

评测结果代码务必背熟:

代码 全称 含义
AC Accepted 通过,全对
WA Wrong Answer 答案错
TLE Time Limit Exceeded 超时
MLE Memory Limit Exceeded 超内存
RE Runtime Error 运行错(数组越界/除零/栈溢出)
CE Compile Error 编译错
PC Partially Correct 部分分(有子任务时)

docs/tools/ 页面地图

docs/tools/ 讲工具链:

OJ 平台

  • docs/tools/oj-tool.md:OJ 平台介绍。
  • docs/tools/judger/:评测机原理(自建 OJ 用)。

主流 OJ:

  • 洛谷(luogu.com.cn):国内最常用的练习 OJ,题目全(尤其 NOIp 真题),有题解和题单,新手首选。
  • Codeforces(codeforces.com):国际顶级,每周有比赛(Rated),题目质量高、思维性强,适合进阶。
  • AtCoder(atcoder.jp):日本 OJ,比赛节奏好,题目优美,适合练思维。
  • UOJ(uoj.ac):国内高质量 OJ,题目偏难,适合省选及以上。

编辑器与编译

  • docs/tools/editor/:代码编辑器(VS Code / Dev-C++ / Vim 等)。VS Code 是主流,Dev-C++ 是老牌竞赛 IDE(考场常见)。
  • docs/tools/compiler.md:编译器(g++ 用法、编译选项 -O2 -Wall -std=c++14)。
  • docs/tools/compile-debug.md:编译与调试(用 gdb 调试,对拍)。
  • docs/tools/cmd.md:命令行基础。
  • docs/tools/wsl.md:WSL(Windows Subsystem for Linux),Windows 下用 Linux 环境。

测试与对拍

  • docs/tools/testlib/:testlib.h,出题/对拍用的库。
  • docs/tools/special-judge.md:Special Judge(答案不唯一时的自定义评测)。
  • docs/tools/polygon.md:Polygon 出题平台。

学习建议

立即注册洛谷开始刷题

💡 学习提示:读完这节,马上做这三件事:

  1. 注册一个洛谷账号。
  2. 打开"题库" → 筛选"普及-"难度,从 P1000 系列开始。
  3. 提交第一道题,体验从 WA 到 AC 的完整流程。

洛谷的难度分级:暂无评定 / 普及- / 普及 / 提高- / 提高 / 省选- / 省选 / NOI- / NOI / NOI+。新手从"普及-"开始,循序渐进。

学会看评测结果

  • WA:不要急着重交,自己构造边界数据测(对拍)。docs/contest/common-mistakes.md 列了常见 WA 原因。
  • TLE:检查复杂度,是否常数大、是否多了个 log、是否没用快读。
  • RE:数组越界、除零、递归爆栈、空指针是最常见原因。开 -Wall 编译会有警告。
  • MLE:数组开太大,或递归太深。检查 long long 数组规模。

学会对拍

对拍是竞赛核心技能:写一个暴力程序(保证对但慢)、一个数据生成器(随机产生小数据)、一个你的正解,反复比较两者输出。发现不一致就是 bug。docs/contest/common-tricks.mddocs/tools/testlib/ 有详细做法。

💡 学习提示:对拍能救命。比赛时正解写完但 WA,如果预先准备好对拍框架,5 分钟内能定位 bug。

备赛节奏建议

CSP-J 入门组开始:CSP-J 难度对应本地图第 2 章 + 第 3 章一部分。能稳定 CSP-J 一等奖后,进 CSP-S 提高组(对应第 3-5 章)。再上是 NOIp / NOI 省选(对应第 6-7 章)。大学生走 ICPC 路线,题目风格不同(更偏思维和团队配合)。

常见误区

⚠️ 注意:

  1. 只看书不刷题:算法竞赛是技能不是知识,必须上机。每学一个知识点配 5-10 道题。
  2. 遇到 WA 直接看题解:WA 后先自己调试 30 分钟,构造数据、对拍,实在不行再看题解思路(不要看代码)。
  3. 不学对拍:比赛时正解 WA 但没法定位,干瞪眼。对拍是必备技能。
  4. 忽略部分分:竞赛题常有子任务,拿 30-60 分暴力分比 0 分强。永远先写暴力保底。
  5. 编辑器配置花太多时间:VS Code 装 C/C++ 插件 + Code Runner 就够用了,别折腾配置。

本节要点

  1. docs/contest/ 讲比赛类型(NOI/NOIp/CSP/ICPC)+ 竞赛技能(IO/对拍/常见错误)+ 官方 roadmap 学习路线。
  2. docs/tools/ 讲 OJ 平台、编辑器、编译器、对拍工具。
  3. 评测结果代码(AC/WA/TLE/MLE/RE/CE)必须熟,理解评测原理(测试数据 + 时限内存限)。
  4. 主流 OJ:洛谷(新手)/ Codeforces(进阶)/ AtCoder / UOJ。立即注册洛谷开始刷。
  5. 必备技能:对拍、写暴力保底、看数据范围估算法。备赛从 CSP-J 入门组起步。

发布者: 作者: 灏天文库 转发
评论区 (0)
U