国际大学生程序设计竞赛

国际大学生程序设计竞赛（英语：International Collegiate Programming Contest, ICPC）是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过30多年的发展，国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事之前仅由IBM公司赞助，2017年新增JetBrains公司赞助, 2018年起，美国计算机协会（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名队员组成。
比赛期间，每队使用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月举行。一个大学可以有多支队伍参加区域预赛，但只能有一支队伍参加全球总决赛。 
全球总决赛第一名将获得奖杯一座。另外，成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。

世界总决赛

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

最近的比赛

2007年国际大学生程序设计竞赛全球总决赛于日本的东京举行。波兰的华沙大学获冠军，清华大学获得亚军。
2008年国际大学生程序设计竞赛全球总决赛于2008年4月6日~10日在阿尔贝塔的班夫举行。圣彼得堡的光学和精密机械研究院获得了他们的第二次世界冠军。
2009年国际大学生程序设计竞赛全球总决赛于2009年4月18日~22日在瑞典的斯德哥尔摩举行。圣彼得堡的光学和精密机械研究院获得了他们的第三次世界冠军，是第一支获取三次冠军的学校。清华大学再次获得亚军。
2010年国际大学生程序设计竞赛全球总决赛于2010年2月1日~6日在中国的哈尔滨工程大学举行。中国的上海交通大学获得了他们的第三次世界冠军。
2011年国际大学生程序设计竞赛全球总决赛于2011年5月29日~30日在美国奥兰多举行。来自中国的浙江大学获得了世界冠军。
2012年国际大学生程序设计竞赛全球总决赛于2012年5月13日~18日在波兰华沙举行。来自俄罗斯的圣彼得堡国立信息技术、机械与光学大学获得了第四次冠军，是第一支获取四次冠军的学校。
2013年国际大学生程序设计竞赛全球总决赛于2013年7月2日~3日在俄罗斯圣彼得堡举行。来自俄罗斯的圣彼得堡国立信息技术、机械与光学大学获得了第五次冠军，是第一支获取五次冠军的学校。
2014年国际大学生程序设计竞赛全球总决赛于2014年6月21日~25日在俄罗斯叶卡捷琳堡举行。来自俄罗斯的圣彼得堡国立大学获得了他们的第三次世界冠军。
2018年国际大学生程序设计竞赛全球总决赛于2018年4月15日~20日在中国北京举行。来自俄罗斯的莫斯科国立大学获得了世界冠军。