ACM-ICPC
ACM国际大学生程序设计竞赛
ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由IBM公司赞助。
历史竞赛的历史可以上溯到1970年,当时在美国得克萨斯A&M大学举办了首届比赛。当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了29届。
最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。1997年,总共有来自560所大学的840支队伍参加比赛。而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。
1980年代,ACM将竞赛的总部设在位于美国得克萨斯州的贝勒大学。
在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代后期以来, 俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届和2005年上海的第29届全球总决赛上两夺冠军。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。
简要规则ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加2次全球总决赛和5次区域选拔赛。
比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7到10个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。
最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚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)相比,ACM-ICPC的特点在于其题量大,每队需要5小时内完成8道题目,甚至更多。另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的编程能力,良好的团队协作和心理素质同样是获胜的关键。
区域和全球决赛赛事由各大洲区域预赛和全球总决赛两个阶段组成。各预赛区第一名自动获得参加全球总决赛的资格。决赛安排在每年的3-4月举行,而区域预赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛,但只能有一支队伍参加全球总决赛。
全球总决赛第一名将获得奖杯一座。另外,成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。
历届冠军下面列出大 是自1977年以来,历年全球总决赛的冠军:年份 总决赛地点 冠军大学 国家
2009年 瑞典斯德哥尔摩 圣彼得堡大学信息、机械和光学系 俄罗斯
2008年 加拿大Banff 圣彼得堡大学信息、机械和光学系 俄罗斯
2007年 日本东京 华沙大学 波兰
2006年 美国得克萨斯州 Saratov国立大学 俄罗斯
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年 美国亚特兰大 密歇根州立大学 美国
在中国的比赛由上海交通大学承办的第29届ACM国际大学生程序设计竞赛全球总决赛于2005年4月3-7日期间在上海浦东的香格里拉酒店举行。总共有78支队伍参加总决赛的角逐,它们是从来自6大洲71个国家1582所大学的4109支队伍中通过之前的各级区域预赛中脱颖而出的。
在当地时间4月6日上午举行的全球总决赛上,东道主上海交通大学代表队是所有参赛队伍中唯一一支解出8道题目的队伍,从而在时隔3年之后第二次夺得全球总冠军。
最近的比赛2007年ACM国际大学生程序设计竞赛全球总决赛于日本的东京举行。波兰的华沙大学获冠军。
2008年ACM国际大学生程序设计竞赛全球总决赛于2008年4月6日-10日在阿尔贝塔的班夫举行[1]。圣彼得堡的光学和精密机械研究院获得了他们的第二次世界冠军。
2009年ACM国际大学生程序设计竞赛全球总决赛于瑞典。森彼得森堡大学获冠军,清华大学因时间稍长而居第二。
2010年,比赛正在火热进行中,2010年ACM国际大学生程序设计竞赛全球总决赛将在中国举办,举办学校为“哈尔滨工程大学”