- 中文名
- 国际大学生程序设计竞赛
- 外文名
- International Collegiate Programming Contest
- 主办机构
- 美国计算机协会(ACM)
- 简 称
- ICPC
- 适用人群
- 大学生
- 赞助方
- AWS、华为和Jetbrains
ACM国际大学生程序设计竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为一年一届的多国参与的国际性比赛。
最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。1997年,总共有来自560所大学的840支队伍参加比赛。而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。
在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代后期以来,俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年在美国夏威夷举办的第26届、2005年在上海举办的第29届和2010年在哈尔滨举办的第34届的全球总决赛上三夺冠军;浙江大学参赛队在美国当地时间2011年5月30下午2时结束的第35届ACM国际大学生程序设计竞赛全球总决赛荣获全球总冠军,成为除上海交通大学之外唯一获得ACM国际大学生程序设计竞赛全球总决赛冠军的亚洲高校。这也是为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成当前的亚欧对抗局面。
2015年全球总决赛,圣彼得堡国立资讯科技、机械与光学大学AC了所有题目(13道),成为了ACM-ICPC历史上第一支在全球总决赛中AK的队伍,也成为了历史上获得ACM-ICPC全球总决赛冠军次数最多(6次)的队伍,这一表现,被当场比赛主持人称作the best of best of best。 [2]
2023年3月,华为杯第47届icpc国际大学生程序设计竞赛(international collegiate programming contest)(亚洲区)决赛上,同济大学学生代表队从全国314支队伍中脱颖而出,分别获得1金1银1铜。 [9]
比赛期间,每队使用1台电脑需要在5个小时内使用C/C++、Java和Python中的一种编写程序解决7到13个问题。程序完成之后提交评测机运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。
最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。
与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM-ICPC的特点在于其题量大,每队需要在5小时内完成7道或以上的题目。另外,一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。
2.竞赛中命题10题左右,试题描述为英文,比赛时间为5个小时,前四个小时可以实时看到排名,最后一小时封榜,无法看到排名。
5.选手可携带任何非电子类资料,包括书籍和打印出来的程序等,部分赛区会对选手携带的纸质资料做限制。
6.评委负责将结果(正确或出错的类型)通过网络尽快返回给选手,除此之外不提供任何额外帮助;
7.每个题目对应一种颜色的气球,通过该题目的队伍会得到对应颜色气球。每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。
赛事由各大洲区域预赛和全球总决赛两个阶段组成。决赛安排在每年的3-5月举行,而区域预赛一般安排在上一年的9-12月举行。原则上一个大学在一站区域预赛最多可以有3支队伍,但只能有一支队伍参加全球总决赛。
入围世界总决赛名额(WF Slots)分为参与名额(Participation Slots)、奖牌名额(Medal Bonus Slots)和其他红利名额(Other Bonus Slots)三类。其中参与名额是从ICPC总部分配给各大洲区的参与名额(ParticipationSlots)中,由各大洲洲区主席确定并分配给洲子赛区的部分,其中各预赛区第一名自动获得参加全球总决赛的资格;奖牌名额是ICPC总部根据上一年度总决赛结果直接分配给获得奖牌的特定学校的名额;其他红利名额是各大洲区主席从ICPC总部争取到的额外奖励名额。
全球总决赛第一名将获得奖杯一座。另外,成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。
竞赛进行5个小时,一般有7道或以上试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评测机,由评测机判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序判定结果有如下7种:
2、Wrong Answer.——答案错误。(WA)
3、Runtime Error.——程序运行出错,意外终止等。(RE)
7、Compile Error. ——编译错误。程序无法编译。(CE)
竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。美国英语为竞赛的工作语言。竞赛的所有书面材料(包括试题)将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括pascal,c,c++及java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。
2012年亚洲区域赛中国大陆5大赛区由华为公司赞助,有奖金(冠5000、亚3000、季2000,非冠亚季的金牌1200,FB(First Blood,指全场第一个解答出某道题) 800,最佳女队800,顽强拼搏500)。顽强拼搏是全场最后一个AC,且只AC1道题的队伍。
总决赛前十名的队伍将得到高额奖学金:第一名奖金为12000美元,第二名奖金为6000美元,第三名奖金为3000美元,第四名至第十名将各得到1500美元。除此之外还将承认北美冠军、欧洲冠军、南太平洋冠军及亚洲冠军。
团队成员将在多名专家裁判的严格督察下通力合作,对问题进行难度分级、推断出要求、设计测试平台并构建软件系统,最终成功地解决问题。对于一名精通计算机科学的学生而言,有些问题只是精确度的问题;而有些则需要学生了解并掌握高级算法;还有一些问题是普通学生无法解决的,不过对于那些最优秀的学生而言,这一切都不在话下。
竞赛的评判过程十分严格。分发给学生的是问题陈述,而不是要求须知。他们会收到一个测试数据实例,但无法获得裁判的测试数据和接受标准方面的信息。若每次提交的解决方案出现错误,就会受到加时惩罚。毕竟,在处理顶级计算问题时,谁也不想浪费客户的时间。在最短的累计时间内,提交次数最少、解决问题最多的队伍就是最后的胜利者。
ACM(美国计算机协会)是一家科教性质的协会,旨在联合全球计算机领域的教学人员、研究人员和从业人员,开展行业交流活动、共享资源和解决业界难题。凭借绝对的领导地位,ACM始终致力于推行最高行业标准,表彰杰出技术人才,加强计算机行业的整体队伍建设。ACM通过为成员提供终生学习、职业发展及与专业人士联谊的机会,支持其在各自的专业领域取得长足进步。 [7]
1977年以来历年全球总决赛的冠军:
年份 | 总决赛地点 | 冠军大学 | 国家 | 队员 | 教练 |
---|---|---|---|---|---|
2021年 | 孟加拉,达卡 | 麻省理工学院 [10] | 美国 | Xiao Mao 邓明扬 Jerry Mao | Ce Jin Yinzhan Xu |
2020年 | 俄罗斯,莫斯科 | 俄罗斯 | Aleksei Daniliuk Valeria Ryabchikova Nikolay Kalinin | Alexey Shmelev Vladislav Epifanov Nikolai Borisov | |
2019年 | 葡萄牙波尔图 | 俄罗斯 | - | - | |
2018年 | 中国北京 | 俄罗斯 | - | - | |
2017年 | 美国南达科他州 | 俄罗斯 | - | - | |
2016年 | 泰国普吉岛 | 俄罗斯 | - | - | |
2015年 | 摩洛哥马拉喀什 | 俄罗斯 | - | - | |
2014年 | 俄罗斯叶卡特琳堡 | 俄罗斯 | - | - | |
2013年 | 俄罗斯圣彼得堡 | 俄罗斯 | - | - | |
2012年 | 波兰华沙 | 俄罗斯 | - | - | |
2011年 | 美国奥兰多 | 中国 | - | - | |
2010年 | 中国哈尔滨 | 中国 | - | - | |
2009年 | 俄罗斯 | - | - | ||
2008年 | 加拿大班夫 | 俄罗斯 | - | - | |
2007年 | 日本东京 | 波兰 | - | - | |
2006年 | 美国得克萨斯州 | 俄罗斯 | - | - | |
2005年 | 中国上海 | 中国 | - | - | |
2004年 | 俄罗斯 | - | - | ||
2003年 | 美国洛杉矶 | 波兰 | - | - | |
2002年 | 美国夏威夷 | 中国 | - | - | |
2001年 | 加拿大温哥华 | 俄罗斯 | - | - | |
2000年 | 美国奥兰多 | 俄罗斯 | - | - | |
1999年 | 荷兰埃因霍温 | 加拿大 | - | - | |
1998年 | 美国亚特兰大 | 捷克 | - | - | |
1997年 | 美国圣何塞 | 哈维玛德大学 | 美国 | - | - |
1996年 | 美国费城 | 美国 | - | - | |
1995年 | 美国纳什维尔 | 德国 | - | - | |
1994年 | 美国菲尼克斯 | 加拿大 | - | - | |
1993年 | 美国印第安纳波利斯 | 美国 | - | - | |
1992年 | 美国堪萨斯城 | 澳大利亚 | - | - | |
1991年 | 美国圣安东尼奥 | 美国 | - | - | |
1990年 | 美国华盛顿 | 新西兰 | - | - | |
1989年 | 美国路易斯维尔 | 美国 | - | - | |
1988年 | 美国亚特兰大 | 美国 | - | - | |
1987年 | 美国圣路易斯 | 美国 | - | - | |
1986年 | 美国辛辛那提 | 美国 | - | - | |
1985年 | 美国新奥尔良 | 美国 | - | - | |
1984年 | 美国费城 | 美国 | - | - | |
1983年 | 美国墨尔本 | 美国 | - | - | |
1982年 | 美国印第安纳波利斯 | 美国 | - | - | |
1981年 | 美国圣路易斯 | 密苏里-罗拉大学 | 美国 | - | - |
1980年 | 美国堪萨斯城 | 美国 | - | - | |
1979年 | 美国代顿 | 美国 | - | - | |
1978年 | 美国底特律 | 美国 | - | - | |
1977年 | 美国亚特兰大 | 美国 | - | - |
2023年3月,华为杯第47届ICPC国际大学生程序设计竞赛(亚洲区)决赛,北大清华浙大分获冠亚季军。 [8]
历年中国大陆举办区域赛地点:
年份 | - | - | - | - | - | - |
---|---|---|---|---|---|---|
1996年 | - | - | - | - | - | |
1997年 | - | - | - | - | - | |
1998年 | - | - | - | - | - | |
1999年 | - | - | - | - | - | |
2000年 | - | - | - | - | - | |
2001年 | - | - | - | - | - | |
2002年 | - | - | - | - | ||
2003年 | - | - | - | - | ||
2004年 | - | - | - | - | ||
2005年 | - | - | - | |||
2006年 | - | - | - | |||
2007年 | - | - | ||||
2008年 | 中国科学技术大学(特别赛区) | - | ||||
2009年 | - | |||||
2010年 | - | |||||
2011年 | - | |||||
2012年 | - | |||||
2013年 | - | |||||
2014年 | ||||||
2015年 |
由上海交通大学承办的第29届ACM国际大学生程序设计竞赛全球总决赛于2005年4月3-7日期间在上海浦东的香格里拉酒店举行。总共有78支队伍参加总决赛的角逐,它们是从来自6大洲71个国家1582所大学的4109支队伍中通过之前的各级区域预赛中脱颖而出的。在当地时间4月6日上午举行的全球总决赛上,东道主上海交通大学代表队是所有参赛队伍中唯一一支解出8道题目的队伍,从而在时隔3年之后第二次夺得全球总冠军。
2018年3月26日,方正集团赞助北京大学ACM-ICPC(国际大学生程序设计竞赛)全球总决赛捐赠仪式在北京大学举行。方正集团、北京大学信息科学技术学院与北京大学教育基金会签署了捐赠协议,北京大学副校长王仰麟向方正集团颁发了“北京大学杰出教育贡献奖”。