ICPC

bd66566c013f8305a060b72735d5a25a.jpg

国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC)。其实这个竞赛有个更广为人知的名字——ACM,ACM是国际计算机学会,因为ACM赞助ICPC,所以这个比赛也被称为ACM-ICPC,但是前几年ACM不再赞助ICPC了,所以ACM并不是一个合适的称呼,但大家都习惯了叫ICPC为ACM,所以默认ACM竞赛指ICPC竞赛。

ICPC竞赛是CS相关专业竞赛中,难度最大、含金量最高的竞赛之一。国内参赛高校基本上为985、211以及顶尖双非院校。

每一场ICPC竞赛有11~13个题目,最多由3人组队共同参赛,由于是国际比赛,题目全为英文,但是参赛选手可以携带纸质资料,比如词典、模板等。目前ICPC竞赛只支持C、C++、Java、Python语言,大多数的参赛选手以C++语言为主,参赛系统多为Linux系统。

每一道题目都对应着一个颜色的气球,当你通过了一道题目时,主办方会将对应颜色的气球绑在你的位置,气球越多代表你通过的题目越多。若某个题目你是第一个通过的,我们称之为一血,一血还会得到特殊的气球,这也是ICPC有意思的地方之一。

8de17bf2e07b9d2281b8b036e73742d.jpg
2019ICPC南昌区域赛现场

赛制介绍

ICPC的赛制与OI、IOI赛制有所区别。一场ICPC比赛共5小时, 通过题目越多则排名越高,若题数相同,则所花时间越少排名越高。一道题目的时间花费为通过该题的时间+罚时。当提交答案且未通过时,会有20分钟的罚时,只有通过题目,罚时才会累加到总和,若未通过题目,则罚时不会累加到总和。在ICPC赛制下,只有通过所有的测试数据才算真正通过了题目。

将程序提交到OJ后,OJ会返回一个状态来告知你结果如何,常见的状态如下:

英文全称 英文简称 中文名称 解释
Compiling CL 正在编译 程序编译中
Running/Judging RU/JU 运行中/测试中 程序运行中/测试中
Accepted AC 通过测评 程序正确
Wrong Answer WA 答案错误 有测试数据没通过
Compile Error CE 编译错误 编译不通过,有语法错误
Presentation Error PE 格式错误 输出格式与要求不符
Time Limit Exceeded TLE 超时 未在规定时间内执行完成
Memory Limit Exceeded MLE 内存超限 使用的内存超过了题目限制
Runtime Error RE 运行时错误 最常见的原因是数组越界

邀请赛

邀请赛的举办时间是在上半年,邀请赛是预选赛的形式之一,会决出一部分区域赛的参赛名额,难度略低于区域赛。

网络赛

网络预选赛的举办时间是在9月份左右,每一场区域赛都有一场网络预选赛,将决出大部分区域赛的参赛名额。

区域赛

区域赛是正式的比赛,举办时间为10月~12月。参赛选手由邀请赛和网络赛决出。同一场区域赛中,每个学校最多派出3支正式队伍,每一支参赛队伍在一个赛季最多参加两场区域赛。

ECL—Final

ECL—Final是指东亚大陆决赛,参赛选手多为各场区域赛中取得较好名次的队伍,且不受最多参加两场区域赛的限制。

World Final

世界总决赛,简称为WF。每一场区域赛(包括ECL—Final)的前3~4名获得WF的参赛名额,每一所学校最多派出一支队伍参加次年举办的WF。

奖项设置

区域赛、ECL—Final:前10%为金、除金外的前20%为银、除金、银外的前30%为铜
WF:4金、4银、4铜

每题的一血队伍还会获得最快解题奖

排名最高的全女生队伍会获得最佳女队奖