欢迎访问成都信息工程大学应用数学学院!   |   联系我们    English
首页 >> 学生工作 >> 创新竞赛 >> 正文
ACM程序设计大赛
 

ACM程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。比赛形式是:经过校级和地区级选拔的参赛组,于指定的时间、地点参加世界级的决赛,由3个成员组成的小组应用一台计算机解决68个生活中的实际问题。

1历史

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

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

1980年代,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学。

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

2比赛目的

比赛参赛队员必须在5小时内编完程序并进行测试和调试。此种大赛对参赛学生的逻辑分析能力、策略制定和脑力方面具有极大的挑战性。大赛提倡在压力较大的情况下,培养学

 

生的创造力、团队合作精神以解决竞赛的问题,从而挑选和发掘世界上最优秀的程序设计人才。

3评分办法

竞赛进行5个小时,一般有6—8道试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序运行不正确是指出现以下5种情况之一:

(1)运行出错(run-timeerror)

(2)运行超时〔time-limitexceeded)

(3)运行结果错误(wronganswer)

(4)运行结果输出格式错误(presentationerror)

(5)运行内存溢出( Memory Limit Exceeded)

竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。美国英语为竞赛的工作语言。竞赛的所有书面材料(包括试题)将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括pascalcc++java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。

4、历史赛事

2009-2010ACM-ICPC赛事介绍

2009年第34ACM-ICPC亚洲区预选赛在中国大陆地区有五个赛区, 分别是哈尔滨赛区(由哈尔滨工业大学承办)、合肥赛区(由中国科学技术大学承办)、宁波赛区(由浙江大学宁波理工学院承办)、上海赛区(由东华大学承办)和武汉赛区(由武汉大学承办)

亚洲地区的高校可组队参加在亚洲的所有赛区的预选赛, 但每位参赛选手在一个年度内至多只能参加两个赛区的预选赛。2009年度亚洲区共设立了十五个赛区, 每个赛区的第一名将自动晋级全球总决赛。

2010年的全球总决赛由哈尔滨工程大学承办, 全球有100支参赛队获得参加于201021日至6日在哈尔滨举行的全球总决赛资格。

2010年第35ACM-ICPC亚洲区预选赛在中国大陆地区有五个赛区, 分别是哈尔滨赛区(由哈尔滨工程大学承办)、天津赛区(由天津大学承办)、成都赛区(由四川大学承办)、杭州赛区(由浙江理工大学承办)和福州赛区(由福州大学承办)

36ACM国际大学生程序设计竞赛中国大陆共有5个赛区,分别为大连赛区(大连理工大学承办)、上海赛区(复旦大学承办)、北京赛区(北京邮电大学承办)、成都赛区(成都东软学院承办)和福州赛区(福建师范大学承办)。

37ACM国际大学生程序设计竞赛中国大陆共有5个赛区,分别为长春赛区(东北师范大学承办)、天津赛区(天津理工大学承办)、杭州赛区(浙江理工大学承办)、金华赛区(浙江师范大学承办)和成都赛区(成都东软学院承办)。

5规则

ACM/ICPC以团队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是入校5年内的在校学生,最多可以参加2次全球总决赛和5次区域选拔赛。

比赛期间,每队使用1台电脑需要在5个小时内使用CC++PascalJava中的一种编写程序解决810个问题(通常是区域选拔赛8题,全球总决赛10题)。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。

最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。例如:AB两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:002:45B队为1:202:10,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45B队为1:20+2:10+0:20=3:50,所以A队以总用时少而获胜。

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

6、决赛介绍

赛事由各大洲区域预赛和全球总决赛两个阶段组成。各预赛区第一名自动获得参加全球总决赛的资格。决赛安排在每年的3-4月举行,而区域预赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛,但只能有一支队伍参加全球总决赛。

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

7历届冠军

1977年以来历年全球总决赛的冠军:

年份

总决赛地点

冠军大学

国家

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

美国亚特兰大

密歇根州立大学

美国

8中国竞赛情况

亚洲区预选赛

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

历年中国大陆举办区域赛地点:

年份

竞赛地点

 

 

 

 

1996

上海大学

 

 

 

 

1997

上海大学

 

 

 

 

1998

上海大学

 

 

 

 

1999

上海大学

 

 

 

 

2000

上海大学

 

 

 

 

2001

上海大学

 

 

 

 

2002

清华大学

西安交通大学

 

 

 

2003

清华大学

中山大学

 

 

 

2004

上海交通大学

北京大学

 

 

 

2005

四川大学

北京大学

浙江大学

 

 

2006

上海大学

清华大学

西安电子科技大学

 

 

2007

西华大学

南京航空航天大学

北京航空航天大学

吉林大学

 

2008

中国科学技术大学(特别赛区)

北京交通大学

哈尔滨工程大学

杭州电子科技大学

西南民族大学

2009

浙江大学宁波理工学院

中国科学技术大学

东华大学

哈尔滨工业大学

武汉大学

2010

哈尔滨工程大学

天津大学

四川大学

浙江理工大学

福州大学

2011

大连理工大学

复旦大学

北京邮电大学

成都东软学院

福建师范大学

2012

东北师范大学

天津理工大学

浙江师范大学

浙江理工大学

成都东软学院

 

世界总决赛

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

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

 

关闭窗口