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计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了35届。
最初几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。特别是自1997年IBM开始赞助赛事之后,赛事规模增长迅速。1997年,总共有来自560所大学的840支队伍参加比赛。而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。
1980年代,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学。
在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代后期以来, 俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届、2005年上海的第29届以及2010年哈尔滨的第34届全球总决赛上三次获得冠军。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。
[编辑] 简要规则
ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成。[1]
比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7到10个问题。程序完成之后提交裁判运行,运行的结果会判定为"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)相比,ACM-ICPC的特点在于其为3人团队作战且题量大,每队需要5小时内完成8道题目,甚至更多。另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的编程能力,良好的团队协作和心理素质同样是获胜的关键。
[编辑] 区域和全球决赛
赛事由各大洲区域预赛(regional)和全球总决赛(worldfinal)两个主要阶段组成。根据各赛区规则,每站前若干名的学校自动获得参加全球总决赛的资格。决赛安排在每年的3-4月举行,而区域预赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛,但只能有一支队伍参加全球总决赛。
全球总决赛第一名将获得奖杯一座。另外,成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。
[编辑] 历届冠军
下面列出大 是自1977年以来,历年全球总决赛的冠军:
[编辑] 在中国的比赛
[编辑] 亚洲区预选赛
ACM国家大学生竞赛自1996年起设立中国大陆地区预选赛赛区,并由上海大学承办,至2001年总决赛止,连续举办五届。之后在境内设置多个赛点,由各大学轮流主办地区性竞赛至今。
历年中国大陆举办regional地点:
| 年份 | |||||
|---|---|---|---|---|---|
| 1996年 | 上海大学 | ||||
| 1997年 | 上海大学 | ||||
| 1998年 | 上海大学 | ||||
| 1999年 | 上海大学 | ||||
| 2000年 | 上海大学 | ||||
| 2001年 | 上海大学 | ||||
| 2002年 | 清华大学 | 西安交通大学 | |||
| 2003年 | 清华大学 | 中山大学 | |||
| 2004年 | 上海交通大学 | 北京大学 | |||
| 2005年 | 四川大学 | 北京大学 | 浙江大学 | ||
| 2006年 | 上海大学 | 清华大学 | 西安电子科技大学 | ||
| 2007年 | 西华大学(成都) | 南京航空航天大学 | 北京航空航天大学 | 吉林大学 | |
| 2008年 | 中国科学技术大学(合肥,特别赛区) | 北京交通大学 | 哈尔滨工程大学 | 杭州电子科技大学 | 西南民族大学(成都) |
| 2009年 | 浙江大学宁波理工学院 | 中国科学技术大学 | 东华大学(上海) | 哈尔滨工业大学 | 武汉大学 |
| 2010年 | 哈尔滨工程大学 | 天津大学 | 四川大学 | 浙江理工大学(杭州) | 福州大学 |
| 2011年 | 大连理工大学 | 复旦大学 | 北京邮电大学 | 成都东软信息学院 | 福建师范大学 |
[编辑] 世界总决赛
由上海交通大学承办的第29届ACM国际大学生程序设计竞赛全球总决赛于2005年4月3-7日期间在上海浦东的香格里拉酒店举行。总共有78支队伍参加总决赛的角逐,它们是从来自6大洲71个国家1582所大学的4109支队伍中通过之前的各级区域预赛中脱颖而出的。在当地时间4月6日上午举行的全球总决赛上,东道主上海交通大学代表队是所有参赛队伍中唯一一支解出8道题目的队伍,从而在时隔3年之后第二次夺得全球总冠军。
由哈尔滨工程大学承办的第34届ACM国际大学生程序设计竞赛全球总决赛于2010年2月在哈尔滨举行,上海交通大学再次夺冠。
[编辑] 最近的比赛
2007年ACM国际大学生程序设计竞赛全球总决赛于日本的東京举行。波蘭的華沙大学获冠军,清华大学获得亚军。
2008年ACM国际大学生程序设计竞赛全球总决赛于2008年4月6日-10日在阿尔贝塔的班夫举行[2]。圣彼得堡的光学和精密机械研究院获得了他们的第二次世界冠军。
2009年ACM国际大学生程序设计竞赛全球总决赛于2009年4月18日-22日在瑞典的斯德哥尔摩举行。圣彼得堡的光学和精密机械研究院获得了他们的第三次世界冠军。清华大学再次获得亚军。
2010年ACM国际大学生程序设计竞赛全球总决赛于2010年2月1日-6日在中国的哈尔滨工程大学举行。中国的上海交通大学获得了他们的第三次世界冠军。
2011年ACM国际大学生程序设计竞赛全球总决赛于2011年5月29日-30日在美国奥兰多举行。来自中国的浙江大学获得了世界冠军。
[编辑] 参见
- ^ [1] 每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加2次全球总决赛和5次区域选拔赛。
- ^ IBM and Association for Computing Machinery Announce Global "Battle of the Brains" Software Competition. 2007-09-12 [2008-06-09].
- TopCoder,一项类似的在互联网上进行的比赛。
[编辑] 外部链接
- 上海大学的在线裁判系统
- (英文)ACM-ICPC–官方主页(由贝勒大学维护)
- (英文)Universidad de Valladolid的在线裁判系统
- (英文)俄罗斯国立乌拉尔大学的在线裁判系统
- (英文)俄罗斯国立Saratov大学的在线裁判系统
- (英文)ACMDIY在线代码坞(ACMer's Code Library)
- (英文)杭州电子科技大学的在线裁判系统
- (英文)天津大学的在线裁判系统
- (英文)电子科技大学的在线裁判系统
- (英文)北京大学的在线裁判系统
- (英文)浙江大学的在线裁判系统
- 同济大学的在线裁判系统
- 哈尔滨工业大学的在线裁判系统(CERNET 外访问:http://acm-hit.sunner.cn )
- 北京理工大学的在线裁判系统
- 北京化工大学的在线裁判系统
- 四川大学的在线裁判系统
- 东北大学ACM主页
- (英文)厦门大学的在线裁判系统 NEW
- (英文)Topcoder竞赛网站
- (英文)IOI
- (英文)全美計算機奧林匹克競賽
- (中文)UVA在線測試題目的一些解析
- (中文)ACM Online部分題目的中文翻譯(已停止維護)
- (英文)湘潭大学在线裁判系统 NEW
- (中文)沈阳工程学院的在线裁判系统
- 福建师范大学的在线裁判系统
- 开源的在线裁判系统HUSTOJ
- 华中科技大学的虚拟在线评测系统Virtual Judge
- 开源的题目交换格式与题库FreeProblemSet