OI 竞赛百科:全球信息学奥林匹克赛事体系、赛制规则与参赛路径全解析
OI 竞赛百科全球信息学奥林匹克赛事体系、赛制规则与参赛路径全解析【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wiki信息学奥林匹克竞赛OI是面向中学生、以算法与程序设计为核心能力的学科竞赛。本文以 OI Wiki 的 竞赛指南文档 为骨架系统梳理 OI 的定义与考察内容、OI / IOI / Codeforces 三类主流赛制、从 CSP-J/S、NOIP、省选、NOI 到 IOI 的完整晋级链路并横向对比美国、波兰、日本、俄罗斯、加拿大等全球主要赛区与 BalticOI、CEOI 等国际赛事的赛程与难度分布为参赛选手、教练与研究者提供一份可检索、可引用的赛事知识总表。什么是信息学奥林匹克竞赛OI信息学奥林匹克竞赛英语Olympiad in Informatics简称OI是一门在中学生中广泛开展的学科竞赛与物理、数学等竞赛性质相同。OI 考察的内容是参赛者运用算法、数据结构和数学知识通过编写计算机程序解决实际问题的能力。从竞赛的命题取向看OI 与写业务代码有着明显区别考试题目一般为算法或者数据结构相关的内容考察选手在限时、限内存条件下设计并实现高效算法的能力。题目形式包括传统题最常见的规定输入和输出到文件的题目评测系统用预先准备的输入输出数据对选手程序进行黑盒评测。关于传统题评测细节、时间/空间限制与各类评测结果AC、CE、WA、RE、TLE、MLE 等可参考 题型介绍。非传统题提交答案题、交互题、补全代码题等等。其中交互题需要选手程序与测评程序交互完成任务包含 STDIO 交互与 Grader 交互两种主流形式其细节与示例代码可参考 交互题详解。全球与中国的 OI 赛事版图OI 竞赛种类繁多仅中国就包括全国青少年信息学奥林匹克联赛NOIP全国青少年信息学奥林匹克竞赛NOI全国青少年信息学奥林匹克竞赛冬令营WC国际信息学奥林匹克竞赛中国队选拔赛CTSC国际性的 OI 竞赛包括国际信息学奥林匹克IOI美国计算机奥林匹克竞赛USACO日本信息学奥林匹克JOI亚太地区信息学奥林匹克APIO对于大部分选手而言每年的新赛季从 9 月的 CSP-J/S 第一轮开始。语言与工具约定在中国OI 竞赛允许使用的语言只有C曾经也开放过 C 和 Pascal 语言但都已停止支持。其中不同的竞赛对 C 的版本有不同的规定。这意味着选手的日常训练应当围绕 C 展开从 学习路线 也能看到入门阶段的第一步就是从 C 语言基础变量、运算、流程控制、函数与递归开始再逐步进入算法与数据结构的学习。赛制介绍三类主流赛制的得分与评测规则不同赛事的核心差异在于提交次数、实时反馈、罚时与部分分机制。理解赛制是制定赛场策略的前提。OI 赛制OI 赛制的特点可以概括为一锤定音选手仅有一次提交机会比赛时无法看到评测结果评分在赛后公布每道题都有多个测试点根据每道题通过的测试点的数量获得相应的分数每个测试点还可能有部分分即使只有部分数据通过也能拿到分数。CSP-J/S 第二轮、NOIP、省选、NOI 都是 OI 赛制。自评测工具 selfEval现如今在一些 NOI 系列赛中提供了 selfEval 自评测工具。selfEval 内置于全国赛定制版 NOI Linux 中。自 NOI2023 正式公布并投入使用后selfEval 陆续用于其后的 NOI 全国赛、APIO中国区和 NOI 冬令营等。选手可以使用 selfEval 在一组测试数据称为预测试数据上测试自己的程序并得到反馈结果。需要注意选手在每场比赛中的自测次数有指定上限NOI2024 自测次数上限为 50 次NOI2025 自测次数上限为 30 次预测试数据是选手不可见的由于预测试数据不同于正式测试数据自测结果仅用于调试不能被视作正式评测成绩选手在同一题目上多次进行预测试所使用的预测试数据是相同的。IOI 赛制IOI 赛制相对宽容选手在比赛时有多次提交机会比赛实时评测并返回结果如果提交的结果是错误的不会有任何惩罚每道题都有多个测试点根据每道题通过的测试点的数量获得相应的分数。APIO、IOI 都是 IOI 赛制。目前国内比赛也在逐渐向 IOI 赛制靠拢。CodeforcesCF赛制Codeforces 是一个在线评测系统会定期举办比赛。它的比赛特点与 OI / IOI 有明显区别比赛过程中只测试一部分数据Pretests而在比赛结束后返回完整的所有测试点的测试结果System Tests比赛时可以多次提交允许Hack别人的代码此处 Hack 的意思是提交一个测试数据使得别人的代码无法给出正确答案如果想要 Hack选手必须要锁定自己的代码换言之比赛时无法重新提交该题Hack 时不允许将选手程序拷贝到本地进行测试源代码会被转换成图片。Codeforces 同时提供另外一种赛制称作扩展 ICPCExtended ICPC 或 ICPC。在这一赛制中比赛过程中会测试全部数据但比赛结束以后会有 12 小时的全网 Hack 时间。Hack 时允许将选手程序拷贝到本地进行测试。与 OI 系列赛并列的还有面向大学生的 ICPC / CCPC 赛事其赛制三人一队、罚时规则、封榜机制可参考 ICPC/CCPC 赛事与赛制。中国主要赛事从 CSP-J/S 到 IOI 的晋级链路CSP-J/S非专业级软件能力认证CSP-J/S英文Certified Software Professional Junior/Senior是 NOIP 在 2019 年被取消之后CCF 开设的非专业级软件能力认证测试在 2025 年以前面向全年龄段后改为 12 周岁以上。CSP-J/S 分为入门级Junior简写为 CSP-J与提高级Senior简写为 CSP-S两组赛程分为第一轮一般在每年 9 月和第二轮一般在每年 10 月两场第一轮为笔试考察计算机理论和操作常识、基本的算法与数学知识第二轮为上机考试入门组与提高组都为 4 题其中入门组考试时间 3.5 个小时提高组 4 个小时CSP-S 2019 除外该场比赛使用旧 NOIP 提高组赛制赛程分为两天一天 3 题 3.5 小时。第一轮面向社会全体 12 周岁以上学生报名经过一定的排名筛选后成绩优秀者有机会参加第二轮。报名参加第一/二轮、第二轮后进行题目申诉等都需要向 CCF 缴费。两轮测试都会以省为单位按照排名对选手成绩进行评级认证分为一、二、三等。NOIP全国青少年信息学奥林匹克联赛NOIP英语National Olympiad in Informatics in Provinces是中华人民共和国组织的、面向中国含港澳中学生的信息学竞赛。2018 年及以前的旧赛制NOIP 按参赛对象分为普及组和提高组2018 年于上海试点入门组按阶段分为初赛和复赛两个阶段。初赛会考察一些计算机基础知识和算法基础复赛为上机考试。时间上一般是 11 月的第二个周末周六上午提高组一试 8:30-12:003.5 小时共 3 题周六下午普及组 14:30-18:003.5 小时共 4 题周日上午提高组二试 8:30-12:003.5 小时共 3 题。全国使用同一套试卷但是评奖规则按照省内情况由 CCF中国计算机学会统一指定并于赛后在 NOI 官方网站上公布。各省的一等奖分数线略有不同。赛制沿革NOIP 于 2019 年 8 月 16 日被 CCF 暂停于 2020 年 1 月 21 日被宣布恢复。2020 年起的 NOIP 赛制与以往有所不同具体如下取消初赛由 CSP-J/S 第一轮替代取消普及组由 CSP-J 替代此后 NOIP 仅有一个组别面向提高组水平选手赛程由以往的两天共 6 题、每天 3.5 个小时缩减为一天 4 题、共 4.5 个小时选手需要在CSP-S 第二轮中取得一定名次才能获得 NOIP 参赛资格具体名额各省有所差异。NOIP 省级参赛资格由该省在去年赛季中的参赛人数和成绩等有关。报名参加 NOIP 和进行题目申诉不需要额外缴费。NOIP 以省为单位排名评奖。截至 2019 年大部分高校的选手获得提高组省一等奖可以得到自主招生资格2020 年起国家不再组织开展高校自主招生工作转为在部分一流大学建设高校开展基础学科招生改革试点强基计划。省队选拔赛省队选拔赛简称省选用于选拔各省参加全国赛的代表队一般举行于每年的 1~4 月。赛程上一般分为两天每天 3 题 4.5 小时。省选题目由各个省自行决定目前的趋势是很多省份选择联合命题各个省队的名额有复杂的计算公式一般和之前的成绩和参赛人数有关。通常来讲NOIP 分数需要在省选的指标中占一定比例根据规则初中选手只能被选拔为 E 类选手不能参加 A、B 类选拔A 类选手有 5 人至少 1 名女选手其他选手根据给定名额和所得分数依次进入 B 队一个学校参加 NOI 的名额不超过本省 A、B 名额总数的三分之一四舍五入得分最高且入选 A 队的女选手不占该比例简称 1/3 限制或 1/3 淘汰自 2020 年起NOI 省队选拔由 CCF 统一命题和评测有能力命题的省可自行命题但选拔方式需得到 CCF 的批准自 2024 年起NOI 省队选拔恢复各省自主命题有需求的省份可组织联考或使用他省试题但具体方案需要得到 CCF 的批准。NOI全国信息学奥林匹克竞赛NOI英文National Olympiad in Informatics是国内包括港澳在内的省级代表队最高水平的大赛一般在七月份举行。选手分为正式选手与夏令营选手两类正式选手又分为三类A、B 类为省队正式选手其中A 类在计算成绩时会有 5 分加分C 类为邀请赛选手名义上是学校对 CCF 做出突出贡献后的奖励名额夏令营选手分为 D、E 类分别对应以非正式选手身份参赛的高中组与初中组选手。夏令营选手如果成绩超过分数线的话只有成绩证明而没有奖牌同等分数含金量要低一些。排名前 50 的正式选手组成国家集训队获得保送资格。在国际平台上为了与其他同样称作 NOI 的比赛区分中国的 NOI 有时会被称作CNOI。CTT国际信息学奥林匹克国家集训队培训CTT英文China Team Training是每年冬天为 IOI 国家集训队选手举办的集训与选拔活动由 3-4 场测试组成。除国家集训队外部分在当年 NOI 中取得优异成绩的选手也可以精英集训的名义参加 CTT。CTT 与平时作业等其他流程共同组成了国家队选拔的第一阶段。自 2021 年起在第一阶段排名前 30 的选手将成为国家候选队进入第二阶段的选拔WC。WC全国青少年信息学奥林匹克竞赛冬令营WC英文Winter Camp是每年冬天在当年 NOI 举办地进行的一项活动。虽然该活动主要用于集训队培训与国家队选拔但是前一年 NOIP 与 CSP-S 第二轮取得较好成绩的选手也可作为非正式营员参加。WC 的内容包括若干天的培训和测试测试成绩将和先前阶段的成绩汇总算出集训队选手的综合排名2020 年前测试仅有一场且集训队与非正式营员的测试题目相同集训队综合成绩前 15 的选手将成为国家候选队参与最后阶段的选拔CTS 等2021 年起随着 CTS 的国家队选拔功能并入到 WC 中国家候选队的测试变为两场而非正式营员的测试仍为一场且非正式营员的测试题目和候选队测试题目有部分重合。候选队中综合排名前 6 的选手将进入到最终的面试并选出 4 名正式选手和 2 名替补选手参与当年的 IOI 比赛。APIO亚太地区信息学奥林匹克竞赛APIO英文Asia-Pacific Informatics Olympiad是一个面向亚太地区在校中学生的信息学学科竞赛。CCF 每年会在五月初举办中国赛区镜像赛在比赛日前后会有培训活动。APIO 参赛选手可分为 A 类和 B 类A 类选手中的前六名含并列可参与 APIO 的国际奖项评选B 类选手只能参与中国赛区的奖项评选。APIO 以省为单位报名一般按照 NOIP 的成绩排序来确定参加人员。CTS国际信息学奥林匹克竞赛中国队选拔赛CTS旧称CTSC英文China Team Selection Competition用来从国家候选队15 人中选拔国家队6 人准备参加当年夏天的 IOI 比赛其中正式选手 4 人替补选手 2 人。与 WC 一样前一年 NOIP 取得较好成绩的选手也可以参加不参与选拔。APIO 和 CTS 都以省为单位报名一般按照 NOIP 的成绩排序来确定参加 APIO 和 CTS 的人员二者一般时间上非常接近。2020 年的 CTS 因为疫情而停办当年的国家集训队通过 NOI 选出2021 年起CTS 的选拔流程被 WC 取代。IOI国际信息学奥林匹克竞赛IOI英文International Olympiad in Informatics是一年一度的面向全球中学生的信息学科竞赛。每个国家有四人参赛比赛一般会有直播。IOI 赛制中每个题目会有Subtask子任务每个子任务对应一定的分数——这正是 IOI 赛制多点得分、多次提交设计的基础。高校学科营北大与清华部分高校会在赛季间歇举办面向优秀中学生的信息学学科营成绩优异者可能在升学中受益北京大学PKU北京大学信息学冬季体验营PKUWC在冬令营前后举行北京大学信息学体验营PKUSC一般在六月份在校内举行。由于在学校机房比赛机房环境是 Windows比赛系统是 OpenJudge北京大学中学生暑期课堂信息学在暑假举行面向高二年级理科学生。清华大学THU计算机系大中衔接冬季研讨与教学活动相当于信息学冬令营有时也会用英文简写为 THUWC。一般共两天上午为竞赛第一天是标准 OI 竞赛第二天为清华独创的工程题竞赛下午为课程培训。其他国家和地区的 OI 竞赛美国USACOUSACO 或许是国内选手最熟悉的外国 OI 竞赛可能也是中文题解最多的外国 OI 竞赛。每年冬季到初春USACO 会每月举办一场网络赛一场比赛持续 3~5 个小时。USACO 的比赛分成 4 档难度2015~2016 学年之前为 3 档组别定位与考察内容铜牌组适合编程初学者尤其是只学了最最基础的算法如排序、二分查找的学生银牌组适合开始学习基本的算法技巧如递归、搜索、贪心算法和基础数据结构的学生金牌组学生会遇到更复杂的算法如最短路径、DP和更高级的数据结构铂金组适合有着扎实的算法设计能力的选手以复杂且更开放的问题来挑战自我在国内目前 USACO 题目最齐全的 OJ 平台是洛谷。波兰POIPOI 是不少省选选手最常刷的外国 OI 比赛。根据 POI 官方的描述其流程如下第一轮六题第 31 届及以前为五题网络赛第二轮包含一场练习赛和两场正式赛其中练习赛一题正式赛每场两题第三轮包含一场练习赛和两场正式赛其中练习赛一题正式赛每场三题。在部分年份曾举办名为ONTAK的比赛其正式名称为 POI 训练营对标国内的国家集训队集训赛CTT。另外波兰国内还举办名为PA的公开比赛大意为算法大战。目前在国内 OJ 中POI 题目最全的是 BZOJ。克罗地亚COCICOCI 是难度跨度很大的比赛大约是从普及-到省选-。以往 COCI 所有的题目均提供题目、数据、题解和标程2017 年底起COCI 的题解和标程停止了更新2019-2020 赛季重新开始更新题解和标程。洛谷、BZOJ 和 LibreOJ 都有少量的 COCI 题目。日本JOIJOI日文日本情報オリンピック中文日本信息学奥赛所有的题目都提供题目、数据、题解和标程。近两年的 JOI 决赛和春训营提供了英语题面但并没有英语题解历年的 JOI Open 都提供了英语版题面和题解。JOI 的流程预赛予選难度较低自 2019/2020 赛季起分为多轮决赛本選/JOI Final难度从提高到提高左右春训营春季トレーニング合宿/JOISC公开赛通信教育/JOI Open Contest。JOISC 和 JOI Open 的题目的难度从提高到 NOI- 不等。绝大部分 JOI 题可以在 AtCoder 提交日文题面目前 LibreOJ 和 BZOJ 有近些年的 JOI Final、JOISC 和 JOI Open 的题目。俄罗斯ROIROI俄文олимпиадная информатика中文俄罗斯信息学奥赛是俄罗斯的信息学竞赛流程分为市级比赛Municipal Stage州级比赛Regional Stage决赛Final Stage目前 LibreOJ 有近几年的 ROI 决赛题的译文。除此之外俄罗斯较大型的、面向中学生的比赛还有信息学网络奥赛由 ROI 出题人举办全国中学生团队信息学竞赛该比赛的预选赛 Moscow Team Olympiad 可以在 Codeforces 上提交Innopolis Open中学生编程公开赛官网称该比赛对标 ROI。加拿大CCC CCOCCCCanadian Computing Competition与 CCOCanadian Computing Olympiad可在其官网查询历届的信息和试题等。在 DMOJ 上可以提交 CCC 和 CCO 题目该 OJ 上还有 CCC 题解。难度参照CCC Junior/Senior 贴近 NOIP 普及组/提高组难度而CCO 想要拿到金牌可能得有 NOI 银牌的水平。新加坡NOI SG全称 Singapore National Olympiad in Informatics在新加坡国内语境且不引起歧义的情况下也作 NOI。赛制上分为Online Qualification Contest在线资格赛和Final Contest全国决赛在线资格赛以学校为单位报名参加选手在本校参赛通过网络进行远程提交资格赛成绩只在校内排名前 5 名且非零分选手有资格作为校代表队参加全国决赛。目前国内 OJ 对于 NOI SG 的题目收录比较匮乏可以在官方的 GitHub 账号上找到历年题面、测试数据和官方标准程序。台湾地区資訊奧林匹亞競賽台湾地区把 OI 中的 informatics 翻译成「資訊」而非大陆通用的翻译「信息」。台湾地区的选手如果想参加 IOI需要经过这几轮比赛區域資訊學科能力競賽全國資訊學科能力競賽資訊研習營TOI其他国家澳大利亚AIO——难度与 NOI 类似英国British Informatics Olympiad——难度太低捷克Matematická olympiáda–kategorie P罗马尼亚Olimpiada Nationala de Informatica——题面、测试数据、题解请在含有 Subiecte 字样的标签页中寻找。其它国际 OI 竞赛除了各国国内赛事还有一批区域性或大洲级的国际比赛普遍具有题目难度大、部分年份公开题面与数据的特点。历年这些比赛的官网地址可在相关 OJ 社区帖子中汇总查询。BalticOI波罗的海BalticOI面向的是波罗的海周边各国如 2018 年的立陶宛、波兰、爱沙尼亚、芬兰等 9 国题目难度大。除了 2017 年BalticOI 每年都公开题面、测试数据和题解。BalticOI 没有一个固定的官网每年的主办方都会新建一个网站。目前 LibreOJ 有近十年的 BalticOI 题。BalkanOI巴尔干BalkanOI面向巴尔干地区周边各国2018 年参赛国有罗马尼亚、希腊、保加利亚、塞尔维亚等 12 国题目难度大。BalkanOI 只有某几年公开题面、测试数据和题解。CEOI中欧信息学竞赛CEOI2018 年参赛国与 BalticOI、BalkanOI 有部分重叠包括波兰、罗马尼亚、格鲁吉亚、克罗地亚等国题目难度大。CEOI 每年都公开题面、测试数据和题解。eJOI欧洲少年信息学奥林匹克eJOI全名 European Junior Olympiad in Informatics参赛国包含俄罗斯、亚美尼亚、保加利亚、波兰等国题目难度较大。eJOI 每年都公开题面、测试数据和题解。NOINordic北欧信息学奥林匹克注意此处介绍的不是「全国信息学奥林匹克竞赛」而是 Nordic Olympiads in Informatics面向北欧各国是近两年才开始举办的比赛。参考资料ICPC/CCPC 赛事与赛制题型介绍传统题、提交答案题、交互题、通信题等交互题详解与例题算法竞赛学习路线竞赛常见错误清单竞赛实用技巧循环宏定义、namespace 等打表技巧分段打表【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wiki创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考