OI 赛事与赛制

赛事简介

信息学奥林匹克竞赛 (英语:Olympiad in Informatics,简称:OI)是一门在中学生中广泛开展的学科竞赛,和物理、数学等竞赛性质相同。OI 考察的内容是参赛者运用算法、数据结构和数学知识,通过编写计算机程序解决实际问题的能力。

OI 竞赛种类繁多,仅中国就包括:

  • 全国青少年信息学奥林匹克联赛(NOIP)
  • 全国青少年信息学奥林匹克竞赛(NOI)
  • 全国青少年信息学奥林匹克竞赛冬令营(WC)
  • 国际信息学奥林匹克竞赛中国队选拔赛(CTSC)

国际性的 OI 竞赛包括:

  • 国际信息学奥林匹克(IOI)
  • 美国计算机奥林匹克竞赛(USACO)
  • 日本信息学奥林匹克(JOI)
  • 亚太地区信息学奥林匹克(APIO)

    ……

对于大部分选手而言,每年的新赛季从 10 月的 NOIP 开始。

OI 竞赛中允许使用的语言包括 C、C++ 和 Pascal(NOI 将于 2020 年停止使用 Pascal,NOIP 将于 2022 年停止使用 Pascal)。其中,不同的竞赛对 C++ 的版本有不同的规定。考试题目一般为算法或者数据结构相关的内容,题目形式包括传统题(最常见的规定输入和输出到文件的题目)和非传统题(提交答案题、交互题、补全代码题……等等)。

赛制介绍

OI 赛制

一般的 OI 赛制可以理解为单人在 5 个小时的时间内尝试解决 3 道题。

选手仅有一次提交机会。比赛时无法看到评测结果,评分会在赛后公布。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数;每个测试点还可能会有部分分,即使只有部分数据通过也能拿到分数。

NOIP、NOI、省选都是 OI 赛制。

IOI 赛制

选手在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果是错误的,不会有任何惩罚。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。

APIO、IOI 都是 IOI 赛制。目前国内比赛也在逐渐向 IOI 赛制靠拢。

ICPC 赛制

一般是三个人使用一台机器。

选手在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果错误会有罚时,错误次数越多,加罚的时间也越长。每个题目只有在所有数据点全部正确后才能得到分数。比赛排名根据做题数和罚时来评判。

在 ICPC 相关赛事中,选手允许带一定量的纸质资料。

Codeforces (CF) 赛制

Codeforces 是一个在线评测系统,会定期举办比赛。

它的比赛特点是在比赛过程中只测试一部分数据(pretests),而在比赛结束后返回完整的所有测试点的测试结果(system tests)。比赛时可以多次提交,允许 hack 别人的代码(此处 hack 的意思是提交一个测试数据,使得别人的代码无法给出正确答案)。如果想要 hack,选手必须要锁定自己的代码(换言之,比赛时无法重新提交该题)。Hack 时不允许将选手程序拷贝到本地进行测试,源代码会被转换成图片。

Codeforces 同时提供另外一种赛制,称作扩展 ICPC(extended ICPC)。在这一赛制中,在比赛过程中会测试全部数据,但比赛结束以后会有 12 小时的全网 hack 时间。Hack 时允许将选手程序拷贝到本地进行测试。

主要比赛

NOIP

NOIP (英语:National Olympiad in Informatics in Provinces,中文:全国青少年信息学奥林匹克联赛)是中华人民共和国组织的、面向中国(含港澳)中学生的信息学竞赛。

NOIP 以省为单位排名评奖。截至 2019 年,大部分高校的选手获得提高组省一等奖可以得到自主招生资格。

NOIP 按参赛对象分为普及组和提高组,2018 年于上海试点入门组;按阶段分为初赛和复赛两个阶段。初赛会考察一些计算机基础知识和算法基础,复赛为上机考试。时间上一般是 11 月的第二个周末,周六上午提高组一试 8:30-12:00(3.5 小时,共 3 题),下午 14:30-18:00 普及组(3.5 小时,共 4 题),周日上午提高组二试 8:30-12:00(3.5 小时,共 3 题)。全国使用同一套试卷,但是评奖规则按照省内情况由 CCF(中国计算机学会)统一指定,并于赛后在 NOI 官方网站 上公布。各省的一等奖分数线略有不同。

NOIP 于 2019 年 8 月 16 日 被 CCF 暂停 ,于 2020 年 1 月 21 日 被宣布恢复

CSP J/S

CSP (英文:Certified Software Professional Junior/Senior) 是 NOIP 在 2019 年被取消之后,CCF 开设的非专业级软件能力认证,面向全年龄段。具体赛制、时间基本同 NOIP 一致。在部分地区,CSP 2019 设有小学组。

目前暂不清楚获得 CSP J/S 认证对自主招生资格的获取是否有帮助。

省队选拔赛

省队选拔赛 (简称:省选)用于选拔各省参加全国赛的代表队。

省选题目由各个省自行决定,目前的趋势是很多省份选择联合命题。

各个省队的名额有复杂的计算公式,一般和之前的成绩和参赛人数有关。通常来讲,NOIP 分数需要在省选的指标中占一定比例。根据规则,初中选手只能被选拔为 E 类选手,不能参加 A、B 类选拔。A 类选手有 5 人(4 男 1 女),其他选手根据给定名额和所得分数依次进入 B 队。一个学校参加 NOI 的名额不超过本省 A、B 名额总数的三分之一(四舍五入),得分最高且入选 A 队的女选手不占该比例(简称 ⅓ 限制或 ⅓ 淘汰)。

自 2020 年起,NOI 省队选拔由 CCF 统一命题和评测,有能力命题的省可自行命题,但选拔方式需得到 CCF 的批准。

NOI

NOI (英文:National Olympiad in Informatics,中文:全国信息学奥林匹克竞赛)是国内包括港澳在内的省级代表队最高水平的大赛。

NOI 一般在七月份举行,有现场赛和网络赛。现场赛选手分为五类,其中 A、B、C 类为正式选手,D、E 类选手为邀请赛选手。A、B 类对应省队的 A、B 类选手(其中 A 类在计算成绩时会有 5 分加分);C 类名义上是学校对 CCF 做出突出贡献后的奖励名额;D 类名义上是个人对 CCF 做出突出贡献后的奖励名额(基本为大额捐款);E 类选手为初中组选手,如果成绩超过分数线的话,只有成绩证明而没有奖牌(同等分数含金量要低一些)。正式选手前 50 名组成国家集训队,获得保送资格。网络赛报名形式上没有门槛。

在国际平台上,为了与其他同样称作 NOI 的比赛区分,有时会被称作 CNOI。

WC

WC (英文:Winter Camp,中文:全国青少年信息学奥林匹克竞赛冬令营 )是每年冬天在当年 NOI 举办地进行的一项活动。

WC 的内容包括若干天的培训和一天的考试。这项考试主要用于从国家集训队(50 人)选拔国家候选队(15 人),但是前一年 NOIP 取得较好成绩的选手也可以参加(不参与选拔)。

APIO

APIO (英文:Asia-Pacific Informatics Olympiad,中文:亚太地区信息学奥林匹克竞赛)是一个面向亚太地区在校中学生的信息学学科竞赛。CCF 每年会在五月初举办中国赛区镜像赛。在比赛日前后会有培训活动。

CTS

CTS (旧称:CTSC, 英文:China Team Selection Competition,中文:国际信息学奥林匹克竞赛中国队选拔赛)用来从国家候选队(15 人)中选拔国家队(6 人)准备参加当年夏天的 IOI 比赛,其中正式选手 4 人,替补选手 2 人。与 WC 一样,前一年 NOIP 取得较好成绩的选手也可以参加(不参与选拔)。

APIO 和 CTS 都以省为单位报名,一般按照 NOIP 的成绩排序来确定参加 APIO 和 CTS 的人员(二者一般时间上非常接近)。

IOI

IOI (英文:International Olympiad in Informatics,中文:国际信息学奥林匹克竞赛)是一年一度的面向全球中学生的信息学科竞赛。每个国家有四人参赛,比赛一般会有直播。IOI 赛制中每个题目会有 subtask(子任务),每个子任务对应一定的分数。

学科营

PKU

  • 北京大学信息学冬季体验营(PKUWC):在冬令营前后举行。
  • 北京大学信息学体验营(PKUSC):一般在六月份在校内举行。由于在学校机房比赛,机房环境是 Windows,比赛系统是 OpenJudge。
  • 北京大学中学生暑期课堂(信息学):在暑假举行,面向高二年级理科学生。

其他国家和地区的 OI 竞赛

美国:USACO

官网地址: https://www.usaco.org/

USACO 或许是国内选手最熟悉的外国 OI 竞赛(可能也是中文题解最多的外国 OI 竞赛)。

每年冬季到初春,USACO 会每月举办一场网络赛。一场比赛持续 3~5 个小时。

根据官网的介绍,USACO 的比赛分成这 4 档难度(2015~2016 学年之前为 3 档):

  • 铜牌组,适合编程初学者,尤其是只学了最最基础的算法(如:排序,二分查找)的学生;
  • 银牌组,适合开始学习基本的算法技巧(如:递归,搜索,贪心算法)和基础数据结构的学生;
  • 金牌组,学生会遇到更复杂的算法(如:最短路径,DP)和更高级的数据结构;
  • 铂金组,适合有着扎实的算法设计能力的选手,铂金组可以帮助他们以复杂且更开放的问题来挑战自我。

在国内,目前 USACO 题目最齐全的是洛谷。

波兰:POI

官网地址: https://oi.edu.pl/

官方提交地址: https://szkopul.edu.pl/p/default/problemset/

POI 是不少省选选手最常刷的外国 OI 比赛。

根据 http://main.edu.pl/en/ 的描述,POI 的流程如下:

  • 第一轮:五题,网络赛,公开赛;
  • 第二轮:包含一场练习赛,和两场正式比赛;
  • 第三轮:赛制同上。
  • ONTAK:POI 训练营(类似国内的集训队)。

另有 PA,大意为“算法大战”。

目前在国内 OJ 中,POI 题目最全的是 BZOJ。

克罗地亚:COCI

官网地址(英文): http://www.hsin.hr/coci/

官网地址(克罗地亚语): http://www.hsin.hr/honi/

难度跨度很大的比赛,大约是从普及 - 到省选 -。

以往 COCI 所有的题目均提供题目、数据、题解和标程。2017 年底起,COCI 的题解和标程停止了更新。2019-2020 赛季重新开始更新题解和标程。

洛谷、BZOJ 和 LibreOJ 都有少量的 COCI 题目。

日本:JOI

官网地址: https://www.ioi-jp.org/

JOI(日文:日本情報オリンピック,中文:日本信息学奥赛)所有的题目都提供题目、数据、题解和标程。近两年的 JOI 决赛和春训营提供了英语题面,但并没有英语题解。历年的 JOI Open 都提供了英语版题面和题解。

JOI 的流程:

  • 预赛(予選)
  • 决赛(本選/JOI Final)
  • 春训营(春季トレーニング合宿/JOI Spring Camp/JOISC)
  • 公开赛(通信教育/JOI Open Contest)

预赛难度较低,自 2019/2020 赛季起,预赛分为多轮。JOI Final 的难度从提高 - 到 提高 + 左右。JOISC 和 JOI Open 的题目的难度从提高到 NOI - 不等。

绝大部分 JOI 题可以前往 AtCoder 提交。你可以在 JOI 官网或者 AtCoder 上找到更多的 JOI 题(日文题面)。

目前 LibreOJ 和 BZOJ 有近些年的 JOI Final、JOISC 和 JOI Open 的题目。

俄罗斯:ROI

官网地址: http://neerc.ifmo.ru/school/archive/index.html

在线提交地址: https://contest.yandex.ru/roiarchive/ 和 Codeforces(部分)。

ROI(俄文:олимпиадная информатика,中文:俄罗斯信息学奥赛)是俄罗斯的信息学竞赛。

流程:

  • 市级比赛(Municipal stage/Муниципальный этап)
  • 州级比赛(Regional Stage/Региональный этап)
  • 决赛(Final Stage/Заключительный этап)

目前 LibreOJ 有近几年的 ROI 决赛题的译文。

除此之外,俄罗斯较大型的、面向中学生的比赛还有:

加拿大:CCC & CCO

CCC(英文:Canadian Computing Competition)

CCO(英文:Canadian Computing Olympiad)

官网地址: https://cemc.math.uwaterloo.ca/contests/past_contests.html#ccc

CCC 提交地址: https://dmoj.ca/problems/?category=4

CCO 提交地址: https://dmoj.ca/problems/?category=24

CCC 在 DMOJ 有题解。

CCC Junior/Senior 贴近 NOIP 普及组/提高组难度。CCO 想要拿到金牌可能得有 NOI 银的水平。

台湾地区:資訊奧林匹亞競賽

台湾地区把 OI 中的 informatics 翻译成「資訊」而非大陆通用的翻译“信息”。

台湾地区的选手如果想参加 IOI,需要经过这几轮比赛:

  • 區域資訊學科能力競賽
  • 全國資訊學科能力競賽
  • 資訊研習營(TOI)

其他国家

其它国际 OI 竞赛

BalticOI

BalticOI 面向的是波罗的海周边各国。BalticOI 2018 的参赛国有立陶宛、波兰、爱沙尼亚、芬兰等 9 国。题目难度大。

除了 2017 年,BalticOI 每年都公开题面、测试数据和题解。BalticOI 没有一个固定的官网,每年的主办方都会新建一个网站。历年的官网地址见 帖子

目前 LibreOJ 有近十年的 BalticOI 题。

BalkanOI

BalkanOI 面向巴尔干地区周边各国。BalkanOI 2018 的参赛国有罗马尼亚、希腊、保加利亚、塞尔维亚等 12 国。题目难度大。

BalkanOI 只有某几年公开题面、测试数据和题解,官网地址见 帖子

CEOI

CEOI 2018 的参赛国与上面两个比赛有部分重叠,包括波兰、罗马尼亚、格鲁吉亚、克罗地亚等国。题目难度大。

CEOI 每年都公开题面、测试数据和题解,官网地址见 帖子

在国内 OJ 中,BZOJ 的 CEOI 题相对最齐。

eJOI

eJOI 全名 European Junior Olympiad in Informatics。参赛国包含俄罗斯、亚美尼亚、保加利亚、波兰等国。题目难度较大。

eJOI 每年都公开题面、测试数据和题解,官网地址见 帖子

ISIJ

ISIJ 全名 International School for Informatics“Junior”,中文名“国际初中生信息学竞赛”。

官网地址: http://isi-junior.com/

300iq 认为题目质量很糟糕。

NOI

Warning

此处介绍的不是“全国信息学奥林匹克竞赛”。

NOI 全名 Nordic Olympiads in Informatics。

官网地址: http://nordic.progolymp.se

近两年才开始举办的比赛,面向北欧各国。

参考资料

ICPC/CCPC 赛事与赛制

「翻译组」一些大洲级 OI 比赛的地址


评论