type
status
date
slug
summary
tags
category
icon
password
💬
目前主流的信息学赛事与赛制主要分为 OI 和 ICPC/CCPC 两种,后者为大学生程序设计竞赛,这里只介绍 OI。
本文共 9115 字,预计阅读时间 18 分钟。

赛事简介

信息学奥林匹克竞赛(Olympiad in Informatics,简称 OI)是一门在中学生中广泛开展的学科竞赛,和物理、数学等竞赛性质相同。OI 考察的内容是参赛者运用算法、数据结构和数学知识,通过编写计算机程序解决实际问题的能力。
OI 竞赛种类繁多,仅中国就包括:
全国青少年信息学奥林匹克联赛(NOIP) 全国青少年信息学奥林匹克竞赛(NOI) 全国青少年信息学奥林匹克竞赛冬令营(WC) 国际信息学奥林匹克竞赛中国队选拔赛(CTSC) 国际性的 OI 竞赛包括:
国际信息学奥林匹克(IOI) 美国计算机奥林匹克竞赛(USACO) 日本信息学奥林匹克(JOI) 亚太地区信息学奥林匹克(APIO)
……
对于大部分选手而言,每年的新赛季从 9 月的 CSP-J/S 第一轮开始。
在中国,OI 竞赛允许使用的语言只有 C++(曾经也开放过 C 和 Pascal 语言,但都已停止支持)。其中,不同的竞赛对 C++ 的版本有不同的规定。考试题目一般为算法或者数据结构相关的内容,题目形式包括传统题(最常见的规定输入和输出到文件的题目)和非传统题(提交答案题、交互题、补全代码题……等等)。

赛制介绍

OI 赛制

选手仅有一次提交机会。比赛时无法看到评测结果,评分会在赛后公布。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数;每个测试点还可能会有部分分,即使只有部分数据通过也能拿到分数。
CSP-J/S 第二轮、NOIP、省选、NOI 都是 OI 赛制。

IOI 赛制

选手在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果是错误的,不会有任何惩罚。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。
APIO、IOI 都是 IOI 赛制。目前国内比赛也在逐渐向 IOI 赛制靠拢。

Codeforces (CF) 赛制

Codeforces 是一个在线评测系统,会定期举办比赛。
它的比赛特点是在比赛过程中只测试一部分数据(Pretests),而在比赛结束后返回完整的所有测试点的测试结果(System Tests)。比赛时可以多次提交,允许 Hack 别人的代码(此处 Hack 的意思是提交一个测试数据,使得别人的代码无法给出正确答案)。如果想要 Hack,选手必须要锁定自己的代码(换言之,比赛时无法重新提交该题)。Hack 时不允许将选手程序拷贝到本地进行测试,源代码会被转换成图片。
Codeforces 同时提供另外一种赛制,称作扩展 ICPC(Extended ICPC 或 ICPC+)。在这一赛制中,在比赛过程中会测试全部数据,但比赛结束以后会有 12 小时的全网 Hack 时间。Hack 时允许将选手程序拷贝到本地进行测试。

主要比赛

notion image

CSP-J/S

CSP-J/S(英文:Certified Software Professional Junior/Senior)是 NOIP 在 2019 年被取消之后,CCF 开设的非专业级软件能力认证测试,面向全年龄段。
CSP-J/S 分为入门级(Junior,简写为 CSP-J)与提高级(Senior,简写为 CSP-S)两组,赛程分为第一轮(一般在每年 9 月)和第二轮(一般在每年 10 月)两场。第一轮为笔试,考察计算机理论和操作常识和基本的算法与数学知识;第二轮为上机考试,入门级与提高级都为 4 题,其中入门级考试时间 3.5 个小时,提高级 4 个小时(CSP-S 2019 除外,该场比赛使用旧 NOIP 提高组赛制,赛程分为两天,一天 3 题 3.5 小时)。第一轮面向社会全体学生报名,经过一定的排名筛选后成绩优秀者有机会参加第二轮。
报名参加第一/二轮、第二轮后进行题目申诉等都需要向 CCF 缴费。
两轮测试都会以省为单位按照排名对选手成绩进行评级认证,分为一、二、三等。

NOIP

NOIP(英语:National Olympiad in Informatics in Provinces,中文:全国青少年信息学奥林匹克联赛)是中华人民共和国组织的、面向中国(含港澳)中学生的信息学竞赛。
2018 年及以前的旧赛制: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 日 被宣布恢复。2020 年起的 NOIP 赛制与以往有所不同,具体如下:
取消初赛,由 CSP-J/S 第一轮替代; 取消普及组,由 CSP-J 替代,此后 NOIP 仅有一个组别,面向提高组水平选手; 赛程由以往的两天共 6 题、每天 3.5 个小时,缩减为一天 4 题、共 4.5 个小时。 选手需要在 CSP-S 第二轮中取得一定名次才能获得 NOIP 参赛资格,具体名额各省有所差异。NOIP 省级参赛资格由该省在去年赛季中的参赛人数和成绩等有关。 报名参加 NOIP 和进行题目申诉不需要额外缴费。
NOIP 以省为单位排名评奖。截至 2019 年,大部分高校的选手获得提高组省一等奖可以得到自主招生资格。
2020 年 1 月,中华人民共和国教育部发布《关于在部分高校开展基础学科招生改革试点工作的意见》。《意见》指出,2020 年起,不再组织开展高校自主招生工作,并在部分一流大学建设高校开展基础学科招生改革试点(强基计划)。

省队选拔赛

省队选拔赛(简称:省选)用于选拔各省参加全国赛的代表队,一般举行于每年的 1-4 月。赛程上一般分为两天,每天 3 题 4.5 小时。
省选题目由各个省自行决定,目前的趋势是很多省份选择联合命题。
各个省队的名额有复杂的计算公式,一般和之前的成绩和参赛人数有关。通常来讲,NOIP 分数需要在省选的指标中占一定比例。根据规则,初中选手只能被选拔为 E 类选手,不能参加 A、B 类选拔。A 类选手有 5 人(4 男 1 女),其他选手根据给定名额和所得分数依次进入 B 队。一个学校参加 NOI 的名额不超过本省 A、B 名额总数的三分之一(四舍五入),得分最高且入选 A 队的女选手不占该比例(简称 ⅓ 限制或 ⅓ 淘汰)。
自 2020 年起,NOI 省队选拔由 CCF 统一命题和评测,有能力命题的省可自行命题,但选拔方式需得到 CCF 的批准。自 2024 年起,NOI 省队选拔恢复各省自主命题,有需求的省份可组织联考或使用他省试题,但具体方案需要得到 CCF 的批准。

NOI

NOI(英文:National Olympiad in Informatics,中文:全国信息学奥林匹克竞赛)是国内包括港澳在内的省级代表队最高水平的大赛。
NOI 一般在七月份举行,选手分为正式选手与夏令营选手两类。正式选手又分为三类,其中 A、B 类为省队正式选手,C 类选手为邀请赛选手。A、B 类对应省队的 A、B 类选手(其中 A 类在计算成绩时会有 5 分加分);C 类名义上是学校对 CCF 做出突出贡献后的奖励名额。夏令营选手分为 D、E 类,分别对应以非正式选手身份参赛的高中组与初中组选手。夏令营选手如果成绩超过分数线的话,只有成绩证明而没有奖牌(同等分数含金量要低一些)。排名前 60 的正式选手组成国家集训队,获得保送资格。
在国际平台上,为了与其他同样称作 NOI 的比赛区分,有时会被称作 CNOI。

WC

WC(英文:Winter Camp,中文:全国青少年信息学奥林匹克竞赛冬令营)是每年冬天在当年 NOI 举办地进行的一项活动。
WC 的内容包括若干天的培训和一天的考试。这项考试主要用于从国家集训队(50 人)选拔国家候选队(15 人),但是前一年 NOIP 与 CSP-S 第二轮取得较好成绩的选手也可以参加(不参与选拔)。

APIO

APIO(英文:Asia-Pacific Informatics Olympiad,中文:亚太地区信息学奥林匹克竞赛)是一个面向亚太地区在校中学生的信息学学科竞赛。CCF 每年会在五月初举办中国赛区镜像赛。在比赛日前后会有培训活动。
比赛以网上准同步赛的形式举行,主办方并不提供比赛场地,仅负责提供比赛试题、提供线上测评环境以及赛事的组织、评奖工作。主办方提供一定长度的比赛开放时间(通常为 2 天),在开放时间内,各国可选取任意连续的5个小时供选手参与竞赛。竞赛期间选手需解答三道试题,相当于 IOI 两试中的一试。每个参赛团必须明确指定一个或多个竞赛场地,所有选手必须在指定的竞赛场地参赛并全程接受参赛团组织的监督。

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。
  • 北京大学中学生暑期课堂(信息学):在暑假举行,面向高二年级理科学生。

清华大学(THU)

  • 计算机系 "大中衔接" 冬季研讨与教学活动:相当于信息学冬令营,有时也会用英文简写为 THUWC。一般共两天,上午为竞赛(第一天是标准 OI 竞赛,第二天为清华独创的“工程题”竞赛),下午为课程培训。

赛程和升学属性

notion image

省赛阶段

根据主办方 CCF 的说法,CSP 入门级或者提高级均是编程能力认证而不是竞赛,但事实上起到的是竞赛的作用。 {.is-info}

CSP-J/S

CCF 非专业级软件能力认证
有助于小升初定点优招,简历加分。也可以帮助初升高走科技特长生。
CSP认证包括两个级别(J 为入门级,S 为提高级)各有两轮测试(通称初赛和复赛),通过第一轮成绩优异者可进入第二轮。

CSP-J

CSP 入门级(CSP-J),前身是 NOIP 普及组,是 NOI 系列赛事中难度最低,面向年龄最低的赛事,它是很多学生参与的第一个信息学的大型比赛。
  • 适宜年龄:11-14 岁。
  • 比赛时间:第一轮为 9 月,第二轮为 10 月。
  • 比赛形式:第一轮为 2 小时的笔试,第二轮为 3.5 小时的上机测试。全国统一命题,省级评奖。
  • 竞赛优惠:对小升初、初升高皆有帮助(取决于地方性政策)。部分知名初高中会对在 CSP-J 比赛中取得优秀成绩的选手(一般来说是一等)提供录取或者分班优惠政策。
  • 参考训练量:于“洛谷”上完成 80 个“普及”难度的试题。历届试题可在“洛谷”上搜索。
  • 从零基础到拿到 CSP-J 一等评级大约需要 0.5 年到 2 年不等,因人而异。

CSP-S

CSP 提高级(CSP-S)主要面向广大的初高中生,难度较入门级有着显著提升,其含金量也显著更高。CSP-S 的成绩是学生参与后续的 NOI 系列赛事的重要凭证。
  • 适宜年龄:12-17 岁。
  • 比赛时间:与 CSP-J 相同,第一轮为 9 月,第二轮为 10 月。
  • 比赛形式:第一轮为 2 小时的笔试,第二轮为 4 小时的上机测试。全国统一命题,省级评奖。
  • 竞赛优惠:对初升高有很大帮助。在 CSP-S 中取得优秀成绩(一般也是一等)的学生多会被顶级高中(如北京人大附中、上海华师大二附中、浙江杭州二中)等特招。
  • 参考训练量:于“洛谷”上完成 150 个“提高”难度的试题,50 个“提高+”难度的试题。历届试题可在“洛谷”上搜索。
  • 从拿到 CSP-J 一等评级到拿到 CSP-S 一等评级的参考学习时间是 1-2 年。

NOIP

全国青少年信息学奥林匹克联赛
NOIP 一等奖/二等奖/三等奖可双一流高校破格走强基计划或者综合素质评价,助力高中升大学。
全国青少年信息学奥林匹克联赛(NOIP)面向高中生群体,难度较 CSP-S 有一定提升,是绝大多数参与信息学竞赛的选手能够接触到的含金量最高的赛事。尽管初中生可以参与 NOIP,但是不评奖。报名 NOIP 存在门槛,往往需要通过 CSP-S 第一轮,甚至是 CSP-S 第二轮得到一定的分数才有资格报名。NOIP 的成绩也是学生参与后续的 NOI 系列赛事的重要凭证。
  • 适宜年龄:15-17 岁。
  • 比赛时间:11 月中下旬。
  • 比赛形式:4.5 小时的上机测试。全国统一命题,省级评奖。
  • 竞赛优惠:NOIP 中获得一等奖将会在知名大学的少创班、综合评价测试、专项初审环节中取得显著优势。
  • 参考训练量:于“洛谷”上完成 200 个“提高”难度的试题,100 个“提高+”难度的试题。历届试题可在“洛谷”上搜索。
  • 一般来说,可以拿到 CSP-S 一等奖的选手,也有能力拿到 NOIP 一等奖。但是如果希望参加省选,则需要拿到 NOIP 比较高的分数,这个过程需要 1-2 年。

国赛阶段

在 NOIP 之后,信息学竞赛将有主线和支线之分。主线赛事为省队选拔和 NOI,支线赛事为 NOIWC、APIO、ISIJ。无论是主线还是支线赛事都要求学生在 CSP-S 或者 NOIP 中取得优秀成绩(往往不低于省级一等奖)才有资格报名。

省队选拔赛

NOI 省队选拔是主线赛事中最为残酷的比赛,其将选拔出有资格以正式选手名额参与 NOI,也就是最终的国家级竞赛的选手。各省省队名额数量不一,多为 5-15 个,部分省的省队名额是省一名额的十分之一。
  • 适宜年龄:14-17 岁。
  • 比赛时间:4 月上旬。
  • 比赛形式:分两天进行,每天 4.5 小时的上机测试。全国统一命题,省级划线选拔。
  • 参考训练量:于“洛谷”上完成 300 个“提高+”难度的试题,200 个“省选”难度的试题。历届试题可在“洛谷”上搜索。
近年 CCF 又推出了“NOI 女生赛”,实际上是和省队选拔一起进行的。最大的作用就是给予了一些比较优秀但未能进入省队的女生,进入省队的机会。在省队选拔中失利,没有进入省队但是取得了还不错的排名的选手可以以夏令营选手的资格参与 NOI,只颁发成绩证明,但不正式评奖。
绝大多数的信息学竞赛选手是通过省队选拔获得参加 NOI 资格的。对于部分竞争激烈的省份,能够通过省选的选手,都是非常顶尖的选手了。

NOI

全国青少年信息学奥林匹克竞赛
NOI 将从正式选手中选出成绩前 50 名作为中国国家集训队,集训队成员获得免高考直接保送清华北大资格。前 200 名可以获得强基计划破格录取的资格。
NOI 是无数选手梦想中的终点,来自全国各地的选手将在这里进行最后的拼搏。每年只有两三百人可以出现在 NOI 的赛场上。NOI 的获奖率为 85%,其中前 50 名将获得金牌,进入国家集训队并且保送清华或者北大;第 51-200 名将获得银牌,在清华北大等顶级名府的强基计划校测中将有显著优势,可以获得强基计划破格录取的资格。
  • 适宜年龄:15-17 岁。
  • 比赛时间:7 月下旬。
  • 比赛形式:分两天进行,每天 5 小时的上机测试。
  • 竞赛优惠:保送清北、或是强基计划校测的强势优惠。
  • 参考训练量:于“洛谷”上完成 300 个“省选”难度的试题,100 个“NOI/NOI+”难度的试题。历届试题可在“洛谷”上搜索。

NOIWC

全国青少年信息学奥林匹克竞赛冬令营
每年的寒假,中国计算机学会都会组织为期一周的冬令营活动(NOIWC),由国家集训队选手以及金牌教练为参与者提供知识点讲解,同时提供了一次与全国各地的选手同台竞技的机会,比赛难度很高,具有一定含金量。
  • 适宜年龄:13-17 岁。
  • 比赛时间:1 月。
  • 比赛形式:5 小时的上机测试。全国统一命题并划线。
  • 竞赛优惠:对初升高与大学的少年班、综合评价测试有着显著的优惠。
  • 参考训练量:于“洛谷”上完成 300 个“省选”难度的试题,100 个“NOI/NOI+”难度的试题。历届试题可在“洛谷”上搜索。

支线阶段

NOIP 以后,除了主线,你还可以选择走 WC->APIO->NOI 支线。

ISIJ

国际初中生信息学竞赛
ISIJ 是国际初中生信息学竞赛,这也是针对较低年龄段(小学或者初中生)的选手能够参与并且评奖的含金量最高的信息学竞赛奖项。比赛有很高的报名门槛,需要在主线赛事 CSP-S 中获得非常优秀的成绩才有资格报名。
  • 适宜年龄:13-16 岁。
  • 比赛时间:7 月上旬。
  • 比赛形式:丰富多样,有难度不同的 A、B 组,每个组有数学赛、码力赛、马拉松赛等。各个组别分别评奖。
  • 竞赛优惠:对初升高有显著优惠。
  • 参考训练量:于“洛谷”上完成 300 个“提高+”难度的试题,200 个“省选”难度的试题。历届试题可在“洛谷”上搜索。

APIO

亚洲与太平洋地区信息学奥林匹克竞赛
每年的 5 月,亚太地区的不同的国家将轮流举办 APIO 这一赛事。比赛提供了一次与亚太地区各地的选手同台竞技的机会,同时也会有国家集训队选手以及金牌教练为参与者提供知识点讲解。比赛难度很高,具有一定含金量。
  • 适宜年龄:13-17 岁。
  • 比赛时间:5 月下旬。
  • 比赛形式:5 小时的上机测试。主办国命题并划全国线,另有国际分数线。
  • 竞赛优惠:对初升高与大学的少年班、综合评价测试有着显著的优惠。
  • 参考训练量:于“洛谷”上完成 300 个“省选”难度的试题,100 个“NOI/NOI+”难度的试题。历届试题可在“洛谷”上搜索。

USACO

美国信息学奥林匹克竞赛
为选拔美国队队员而设立的比赛,助力升入国际名校。
USACO是美国为了每年夏季举办的国际信息学奥林匹克竞赛(IOI)选拔美国队队员而设立的比赛,由于其题目含量高,形式和中国选择国家队的比赛接近。

国际赛阶段

NOI 将选拔全国最顶尖的 50 位选手进入国家集训队。在经过数个月的集中培训以及考核后,最优秀的 4 位选手将代表中国参与代表全球最高水平的竞赛:国际信息学奥林匹克竞赛(IOI)。可以入选国家队是这一年中全国最优秀的 4 名选手,足以为国争光。在 IOI 获得过奖牌的选手,只要自己愿意,几乎可以任选全球的顶尖高校。

IOI

国际信息学奥林匹克竞赛
取得好成绩的学员能保送到世界上顶尖的高等学府。
每个参赛国家选择一支最多由四名参赛者组成的团队代表他们的国家。该团队将在队长和副队长的陪同下进行为期两天的比赛。奖项分为:金牌、银牌、铜牌。

小结

最后再来梳理一下信竞生之路:
notion image
  1. 小学和初中阶段参与 CSP-J,且尽早参与 CSP-S。通过充实的基础学习、大量的练习、足够的模拟比赛,取得好的成绩。
  1. 11 月下旬参与 NOIP,4 月上旬参加省队选拔,凭借 NOIP 以及省队选拔的佳绩进入省队。此时更需要成倍的刻苦努力付出。
  1. 参与 NOIWC 以及 APIO 等比赛开拓视野增长见识。
  1. 在 7 月的 NOI 赛事中获得全国前 50 的优秀成绩,保送清华或者北大;或是取得全国前 200 名的优秀成绩,在强基校测中取得加分优惠。
路漫漫其修远兮,吾将上下而求索。竞赛竞争激烈,但是也可以很有收获。

学习信息学竞赛能获得的好处

作为一种兴趣,培养情操

编程作为一种爱好或者兴趣,本质上和阅读、写作、绘画、声乐、器乐、舞蹈、摄影、园艺等类似,都有愉悦身心、陶冶情操、增加耐心的功效。为什么呢?写出一道题/做出一个小程序会很爽快,有成就感。无论是编写应用程序还是 NOIP 算法竞赛,学习过程都不是非常简单的。但是正是经过这样的磨练,当自己完成出任务的成就感是非常大的。
通过调 bug,找错误,可以培养沉得住气的品质。编写计算机程序要求的是准确,任何一点错误就会导致程序不能按照自己的预期运行。所以经过一些训练,选手会特别注意自己踩过的坑,变得非常仔细。但是编程的实现方式是可以有自己的个性而不一而足的,同学可以发挥想象完成编程过程,这也是对创造力的培养。这些经历对人生会有很大的帮助。

算法能力训练有助于课业内容学习

很多老师家长因为不了解算法竞赛,以为就是“玩电脑”,浪费时间,影响课内学习。实际上如果训练计划科学,那么不需要担心这个问题。相反,学习编程以及算法可以训练数学(尤其是逻辑数学)思维能力
算法竞赛主要研究对象的是离散数学,虽然很多学生并没有意识到这一点。即使是小学生,知识储备还很有限,但是即使写一些简单的题目,也是对思维的训练。效果是对数字、形状与抽象结构的理解更加透彻。小学或者初一小朋友理解一些抽象的东西起来会有一些困难,但是经过编程的训练,就可以很大的提升这一方面的能力。对,就是非常有助于中学阶段的理科学习。
对于中学生来说,学习算法竞赛除了上一点所说的培养兴趣以外,还能学习到一些数论、概率统计方面的一些知识。这些知识很可能在学校的课堂上并不会教授,但是在学习中学数学中是可以用得到的。除此之外,学习算法竞赛可以给同学提供另外的思路,比如递推思想、枚举思想等,这些思维方式在实际生活中是很有用的。
如果说“高考不考”编程,那么这个观点也不对。现在在浙江,信息技术(技术学科的一部分)已经成为了高考科目,而且是计分科目,技术科目会直接影响高考排名以及大学的录取(技术科目占 100 分,其中一半是信息技术)。浙江是第一个吃螃蟹的省份,谁敢打包票之后别的省份也不会加入技术高考呢?浙江的信息学竞赛选手普遍认为学习过信息学竞赛后,完成浙江信息技术高考试题简单得和切菜一样,完全不需要花什么时间就可以轻松应对。

编写程序可以开发实用软件

学习信息学竞赛后,因为有了编程基础,再去学习开发应用软件就会简单很多。
应用软件种类很多,例如可以去学 Python 写爬虫获得互联网上的一些数据,并进行分析。这些技能都是可以在现实生活中用得到的,可以利用计算机作为工具解决现实生活中的种种问题,提升效率
说不定大家以后可以从事这方面相关的工作,而且 CS(计算机科学)相关的工作的收入是很高的。当然前提是要对这些感兴趣,毕竟这一行还是相当累的。

还能帮助升学

前面讲得很详细了,这里不再赘述。感兴趣的同学可以自行查询一些高校的政策。

信息学竞赛考什么

信息学竞赛的编程语言

说到编程,很多人就会想出 Java、C++、Python、PHP 等常见的编程语言。但是实际上在信息学竞赛中,并不能使用所有的语言。2022 年前,国内的信息学竞赛只能使用 C 语言、C++ 和 Pascal。早期的信息学竞赛还能使用 BASIC。但是因为一些原因,从 2022 年开始 NOIP 将不再允许使用 Pascal 和 C 语言。
而在国外以及 IOI 可能还能使用 Java 等语言,至于国内是否能够启用新的语言现在不知道。所以说想用 Python 来参加信息学竞赛的话可能就会让你失望啦。因此如果想问需要学习什么语言,那么唯一的标准答案就是:C++。
但是,语言之间并不是互斥的。很多选手能够掌握两门甚至更多种类的语言;实际上只要学好其中一门语言,在学习新的语言就会容易很多。即使初期可能会有一些混淆的习惯但是并不用太担心,写多了后自然就能信手拈来。
说到底,在信息学竞赛中,语言本身只是为了解决算法问题而使用的工具,即使是我们钦点的 C++,实际上我们能用到的语言特性也只是 C++ 中的一部分(我们经常笑称我们学的实际上是 C with STL)。所以虽然需要学习 C++ 语言,但是我们并不需要精通它(实际上也做不到)。因此学习算法竞赛的错误入门姿势是阅读砖头厚的《C++ Primer Plus》等大而全的书籍,因为我们只需要学习最基础的一些语言特性就足以使用了。

需要了解计算机本身

除了语言,我们会稍微涉猎计算机构造原理的知识。我们需要知道数据在计算机中是怎么表示、储存、运算、演示的。这不仅是信息学竞赛初赛的考点,也会让你更加了解计算机的结构,并且优化算法
至于写游戏写网站这种应用程序倒不是信息学竞赛涉及的内容(虽然初赛的确考过 HTML 语言,但是非常久了)。只不过了解语言和计算机原理本身的话,对于学习编写“实用”程序,了解软件工程,还是有好处的。

最重要的部分是数据结构与算法

信息学竞赛的核心就是数据结构和算法了。通俗的来讲就是通过编写程序,将输入数据进行自动化处理的方式,可以解决一类确定的问题。
数据结构和算法知识相当广泛,也有难易之分。一些算法和数据结构是前辈(可能是数学家、计算科学家、甚至是算法竞赛的选手)创造和优化的。我们会合理利用这些算法知识来编写程序解决问题,甚至自己创造一些算法。学习这些算法是训练竞赛的最重要的部分,需要耗费大量的时间和精力。
对于入门级来说,需要掌握排序、简单图论、简单贪心、简单动态规划等算法。而对于提高级选手来说,不仅需要掌握入门级的要求,而且从深度和广度还要更深,必须需要学习更多种类的动态规划,了解更多的数据结构(线段树、二叉堆等),对思维的要求也更高。至于省选级别的,需要掌握的知识也就更多了。
同学们可能关心竞赛是否存在考纲。我在这里把最新考纲的官方链接放出来:NOI 大纲(2023年修订版)正式发布
实际上我们研究的算法算是离散数学,虽然我们并不一定感受得到。解决这些问题经常需要使用一些数学工具(数论、多项式理论、计算几何、组合数学和概率论等等),越是高层次的比赛对数学思维能力要求也是越高。虽然信息学并不能和数学划等号,但是良好的数学能力可以帮助选手更好地解决这些问题。
最后,我们不修电脑,不修投影仪,也不做PPT。
相关文章
线上课 #17:栈与队列
Lazy loaded image
『社团英雄纪念碑』上线
Lazy loaded image
线上课 #12:选择排序与插入排序
Lazy loaded image
『林桛杨高』Demo 带你漫游杨高
Lazy loaded image
Git - 最优雅的分布式版本控制系统
Lazy loaded image
线上课 #11:算法复杂度与排序算法入门
Lazy loaded image
玩转大语言模型:零基础教程池氏之子杂传·巨鳅精异事第三
Loading...
DrimTech
DrimTech
一群热爱信息技术,善于创造的羊羔
最新发布
线上课 #18:研究性学习开题仪式 & 如何科学地提问
2025-1-14
线上课 #17:栈与队列
2025-1-13
『林桛杨高』Demo 带你漫游杨高
2025-1-9
直面挑战,追求卓越——DrimTech 2024
2024-12-31
DrimTech 祝大家 1024 程序员节快乐
2024-12-31
邮箱添加别名教程
2024-12-29
公告
🎉 DrimTech 研究性学习正式开题! 🎉
2025 年 1 月 11 日,DrimTech 线上课 #18:研究性学习开题仪式 & 如何科学地提问顺利开展,宣告首次研究性学习拉开帷幕。