赛事简介
信息学奥林匹克竞赛(英语: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