国际大学生程序设计竞赛

国际大学生程序设计竞赛（，縮寫：ICPC），旧称ACM竞赛，是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过50多年的发展，国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事由ICPC基金会 （ICPC Foundation）举办。赛事之前仅由IBM公司赞助，2017年新增JetBrains公司赞助，2018年起，美国计算机协会（ACM）不再赞助ICPC，但仍然有许多人习惯称这个赛事为ACM-ICPC竞赛。

 历史 

竞赛的历史可以上溯到1970年，当时在美国德克萨斯A&M大学举办了首届比赛。当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一种全新的发现和培养计算机科学顶尖学生的方式，竞赛很快得到美国和加拿大各大学的积极响应。1977年，在ACM计算机科学会议期间举办了首次总决赛，并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了35届。

最初几届比赛的参赛队伍主要来自美国和加拿大，后来逐渐发展成为一项世界范围内的竞赛。特别是自1997年IBM开始赞助赛事之后，赛事规模增长迅速。1997年，总共有来自560所大学的840支队伍参加比赛。而到了2004年，这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。

1980年代，ICPC的总部改设在位于美国德克萨斯州的贝勒大学。

在赛事的早期，冠军多为美国和加拿大的大学获得。而进入1990年代后期以来， 俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届、2005年上海的第29届以及2010年哈尔滨的第34届全球总决赛上三次获得冠军。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。

 简要规则 

ICPC以团队的形式代表各学校参赛，每队由3名队员组成。  每位队员必须是在校学生，有一定的年龄限制，并且最多可以参加2次全球总决赛和5次区域选拔赛。

比赛期间，每队使用1台电脑需要在5个小时内使用 Java、C、C++、Kotlin 或 Python 中的一种编写程序解决8到13个问题。程序完成之后提交裁判运行，运行的结果会判定为"AC(答案正确)/WA（答案错误）/TLE（超出时间限制）/MLE（超出内存限制）/RE（运行错误）/PE（格式错误）"中的一种并及时通知参赛队。每队在正确完成一题后，组织者将在其位置上升起一只代表该题颜色的气球。

最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止，其间每一次提交运行结果被判错误的话将被加罚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队以总用时少而获胜。

与其它计算机程序竞赛（例如国际信息学奥林匹克，IOI）相比，ICPC的特点在于其为3人团队作战且题量大，每队需要5小时内完成8道题目，甚至更多。除此之外，一支队伍有3名队员却只有1台电脑，使得时间显得更为紧张。因此除了扎实的编程能力，良好的团队协作和心理素质同样是获胜的关键。

 区域和全球决赛 

赛事由各大洲区域预赛（regional）和全球总决赛（worldfinal）两个主要阶段组成。根据各赛区规则，每站前若干名的学校自动获得参加全球总决赛的资格。决赛安排在每年的3-4月举行，而区域预赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛，但只能有一支队伍参加全球总决赛。

全球总决赛第一名将获得奖杯一座。另外，成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。

 历届冠军 

下面列出自1977年以来，历年全球总决赛的冠军：
年份总决赛地点冠军大学国家2024年埃及卢克索高等经济大学俄罗斯2024年埃及卢克索北京大学中国2022年孟加拉达卡麻省理工学院美国2020年俄羅斯莫斯科俄罗斯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年 美国亚特兰大密歇根州立大学美国

 在中国的比赛 
亚洲区预选赛
国际大学生程序设计竞赛自1996年起设立中国大陆地区预选赛赛区，并由上海大学承办，至2001年总决赛止，连续举办五届。之后在境内设置多个赛点，由各大学轮流主办地区性竞赛至今。

历年中国大陆举办地点：
年份舉辦大學1996年 上海大学1997年 上海大学1998年 上海大学1999年 上海大学2000年 上海大学2001年 上海大学2002年 清华大学西安交通大学2003年 清华大学中山大学2004年 上海交通大学北京大学2005年 四川大学北京大学浙江大学2006年 上海大学清华大学西安电子科技大学2007年 西华大学南京航空航天大学北京航空航天大学吉林大学2008年 中国科学技术大学北京交通大学哈尔滨工程大学杭州电子科技大学西南民族大学2009年 浙江大学宁波理工学院中国科学技术大学东华大学哈尔滨工业大学武汉大学2010年 哈尔滨工程大学天津大学四川大学浙江理工大学福州大学2011年 大连理工大学复旦大学北京邮电大学成都东软学院福建师范大学2012年 东北师范大学天津理工大学浙江师范大学浙江理工大学成都东软学院2013年 电子科技大学浙江工业大学南京理工大学湖南大学吉林大学2014年 牡丹江师范学院辽宁科技大学西北工业大学北京师范大学华南理工大学上海大学2015年 东北大学东北师范大学北京大学中国科学技术大学华东理工大学上海大学（决赛）2016年 大连海事大学东北大学北京大学中国石油大学（华东）上海大学（决赛）2017年 新疆大学东北大学西北工业大学中国石油大学（华东）北京大学广西大学香港理工大学上海大学（决赛）2018年东北大学南京航空航天大学中国矿业大学河南理工大学北京大学中国石油大学（华东）香港城市大学西北工业大学（决赛）

世界总决赛

由上海交通大学承办的第29届国际大学生程序设计竞赛全球总决赛于2005年4月3-7日期间在上海浦东的香格里拉酒店举行。总共有78支队伍参加总决赛的角逐，它们是从来自6大洲71个国家1582所大学的4109支队伍中通过之前的各级区域预赛中脱颖而出的。在当地时间4月6日上午举行的全球总决赛上，东道主上海交通大学代表队是所有参赛队伍中唯一一支解出8道题目的队伍，从而在时隔3年之后第二次夺得全球总冠军。

由哈尔滨工程大学承办的第34届国际大学生程序设计竞赛全球总决赛于2010年2月在哈尔滨举行，上海交通大学再次夺冠。

 参考文献 

 外部链接 
 国际大学生程序设计竞赛官方主页（由贝勒大学维护）

 评测网站 
 Universidad de Valladolid的在线裁判系统
 Topcoder竞赛网站
 杭州电子科技大学的在线裁判系统
 北京大学的在线裁判系统

 参见 
 TopCoder，一项类似的在互联网上进行的比赛。
 PC2，曾採用的跨平台的評測系統，早於Kattis。

Category:程序设计竞赛