ICPC
国际大学生程序设计竞赛(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有意思的地方之一。
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铜
每题的一血队伍还会获得最快解题奖
排名最高的全女生队伍会获得最佳女队奖