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 赛制靠拢。
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 年,大部分高校的选手获得提高组省一等奖可以得到自主招生资格。
2020 年 1 月,中华人民共和国教育部发布 关于在部分高校开展基础学科招生改革试点工作的意见。意见指出,2020 年起,不再组织开展高校自主招生工作,并在部分一流大学建设高校开展基础学科招生改革试点(强基计划)。
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 设有小学组。
目前暂不清楚获得 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
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
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 决赛题的译文。
除此之外,俄罗斯较大型的、面向中学生的比赛还有:
- 信息学网络奥赛(俄文:Интернет-олимпиады по информатике)
- 官网地址:http://neerc.ifmo.ru/school/io/index.html
- 该比赛由 ROI 出题人举办。
- 全国中学生团队信息学竞赛(俄文:Всероссийской командной олимпиады школьников)
- 官网地址:http://neerc.ifmo.ru/school/russia-team/index.html
- 该比赛的预选赛 Moscow Team Olympiad 可以在 Codeforces 上提交。
- Innopolis Open
- 中学生编程公开赛(Открытая олимпиада школьников по программированию)
- 官网地址:https://olympiads.ru/zaoch/
- 官网称该比赛对标 ROI。
加拿大:CCC & CCO
CCC(英文:Canadian Computing Competition),CCO(英文:Canadian Computing Olympiad),可在其 官网 查询历届的信息和试题等。
在 DMOJ 上可以提交 CCC 和 CCO,该 OJ 上还有 CCC 题解。
CCC Junior/Senior 贴近 NOIP 普及组/提高组难度。CCO 想要拿到金牌可能得有 NOI 银的水平。
台湾地区:資訊奧林匹亞競賽
台湾地区把 OI 中的 informatics 翻译成「資訊」而非大陆通用的翻译「信息」。
台湾地区的选手如果想参加 IOI,需要经过这几轮比赛:
- 區域資訊學科能力競賽
- 全國資訊學科能力競賽
- 資訊研習營(TOI)
其他国家
-
法国与澳大利亚:FARIO:http://orac.amt.edu.au/cgi-bin/train/hub.pl
- 难度与 NOI 类似。
-
英国:British Informatics Olympiad:https://www.olympiad.org.uk/
- 难度太低。
-
捷克:Matematická olympiáda–kategorie P:http://mo.mff.cuni.cz/p/archiv.html
-
罗马尼亚:Olimpiada Nationala de Informatica:http://olimpiada.info/
- 题面、测试数据、题解请在含有 Subiecte 字样的标签页中寻找。
其它国际 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 in Informatics "Junior",中文名「国际初中生信息学竞赛」。
300iq 认为题目质量很糟糕。
NOI
Warning
此处介绍的不是「全国信息学奥林匹克竞赛」。
NOI 全名 Nordic Olympiads in Informatics。
官网地址:http://nordic.progolymp.se
近两年才开始举办的比赛,面向北欧各国。
参考资料
本页面的全部内容在 小熊老师 - 莆田青少年编程俱乐部 0594codes.cn 协议之条款下提供,附加条款亦可能应用