当前位置首页 > 百科资料> 正文

ACM国际大学生程序设计竞赛

2022-06-25 19:42:28 百科资料

国际大学生程序设计竞赛(英文全称:International Collegiate Programming Contest(简称ICPC))是由国际计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛,赛事由AWS、华为和Jetbrains 赞助,在北京大学设有ICPC北京总部,用于组织东亚区域赛 。

  • 中文名称 国际大学生程序设计竞赛
  • 外文名称 International Collegiate Programming Contest
  • 简称 ICPC
  • 主办方 国际计算机协会(ACM)
  • 适用人群 大学生

历史背景

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

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

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

  在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代后期以来,俄罗斯和其它一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年在美国夏威夷举办的第26届、2005年在上海举办的第29届和2010年在哈尔滨举办的第34届的全球总决赛上三夺冠军;浙江大学参赛队在美国当地时间2011年5月30下午2时结束的第35届ACM国际大学生程序设计竞赛全球总决赛荣获全球总冠军,成为除上海交通大学之外唯一获得ACM国际大学生程序设计竞赛全球总决赛冠军的亚洲高校。这也是为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成当前的亚欧对抗局面。

  2015年全球总决赛,圣彼得堡国立资讯科技、机械与光学大学AC了所有题目(13道),成为了ACM-ICPC历史上第一支在全球总决赛中AK的队伍,也成为了历史上获得ACM-ICPC全球总决赛冠军次数最多(6次)的队伍,这一表现,被当场比赛主持人称作the best of best of best。

  2018年4月,ACM-ICPC在中国北京举行,由北京大学承办,最终北京大学最后时候完成G题夺得金牌。

简要规则

  ACM-ICPC以团队的形式代表各学校参赛,每队由至多3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且每年最多可以参加2站区域选拔赛。

  比赛期间,每队使用1台电脑需要在5个小时内使用C/C++、Java和Python中的一种编写程序解决7到13个问题。程序完成之后提交评测机运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个"FIRST PROBLEM SOLVED"的气球。

  最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。

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

竞赛特点

  1.参赛队伍最多由三名参赛队员组成。

  2.竞赛中命题10题左右,试题描述为英文,比赛时间为5个小时,前四个小时可以实时看到排名,最后一小时封榜,无法看到排名。

  3.竞赛可以使用的语言:Java, C, C++, Kotlin 和 Python。

  4.重点考察选手的算法和程序设计能力,不考察实际工程中常用的系统编程,多线程编程等等;

  5.选手可携带任何非电子类资料,包括书籍和打印出来的程序等,部分赛区会对选手携带的纸质资料做限制。

  6.评委负责将结果(正确或出错的类型)通过网络尽快返回给选手,除此之外不提供任何额外帮助;

  7.每个题目对应一种颜色的气球,通过该题目的队伍会得到对应颜色气球。每道题目第一支解决掉它的队还会额外获得一个"FIRST PROBLEM SOLVED"的气球。

赛事构成

  赛事由各大洲区域预赛和全球总决赛两个阶段组成。决赛安排在每年的3-5月举行,而区域预赛一般安排在上一年的9-12月举行。原则上一个大学在一站区域预赛最多可以有3支队伍,但只能有一支队伍参加全球总决赛。

  入围世界总决赛名额(WF Slots)分为参与名额(Participation Slots)、奖牌名额(Medal Bonus Slots)和其他红利名额(Other Bonus Slots)三类。其中参与名额是从ICPC总部分配给各大洲区的参与名额(ParticipationSlots)中,由各大洲洲区主席确定并分配给洲子赛区的部分,其中各预赛区第一名自动获得参加全球总决赛的资格;奖牌名额是ICPC总部根据上一年度总决赛结果直接分配给获得奖牌的特定学校的名额;其他红利名额是各大洲区主席从ICPC总部争取到的额外奖励名额。

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

评分标准

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

  1、Accepted. --通过!(AC)

  2、Wrong Answer.--答案错。(WA)

  3、Runtime Error.--程序运行出错,意外终止等。(RE)

  4、Time Limit Exceeded. --超时。程序没在规定时间内出答案。(TLE)

  5、Presentation Error. --格式错。程序没按规定的格式输出答案。(PE)

  6、Memory Limit Exceeded. --超内存。程序没在规定空间内出答案。(MLE)

  7、Compile Error. --编译错。程序编译不过。(CE)

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

奖励情况

  区域赛一般分别按10%,20%,30%的比例颁发金,银,铜奖,即一般情况(120队伍)有12支队伍获金牌,24支队伍获银牌,36支队伍获铜牌,其余为优胜奖。

  2010年亚洲区域赛中国大陆5大赛区由阿里巴巴公司赞助,获得金牌的选手可以享受绿色通道,进入阿里巴巴实习或参加工作。

  2012年亚洲区域赛中国大陆5大赛区由华为公司赞助,有奖金(冠5000、亚3000、季2000,非冠亚季的金牌1200,FB(First Blood,指全场第一个解答出某道题) 800,最佳女队800,顽强拼搏500)。顽强拼搏是全场最后一个AC,且只AC1道题的队伍。

  总决赛前十名的队伍将得到高额奖学金:第一名奖金为12000美元,第二名奖金为6000美元,第三名奖金为3000美元,第四名至第十名将各得到1500美元。除此之外还将承认北美冠军、欧洲冠军、南太平洋冠军及亚洲冠军。

赛事意义

  竞赛规定每支参赛队伍至多由三名在校大学生组成,他们需要在规定的五个小时内解决八个或更多的复杂实际编程问题。每队使用一台电脑,参赛者争分夺秒,与其他参赛队伍拼比逻辑、策略和心理素质。

  团队成员将在多名专家裁判的严格督察下通力合作,对问题进行难度分级、推断出要求、设计测试平台并构建软件系统,最终成功地解决问题。对于一名精通计算机科学的学生而言,有些问题只是精确度的问题;而有些则需要学生了解并掌握高级算法;还有一些问题是普通学生无法解决的,不过对于那些最优秀的学生而言,这一切都不在话下。

  竞赛的评判过程十分严格。我们分发给学生的是问题陈述,而不是要求须知。他们会收到一个测试数据实例,但无法获得裁判的测试数据和接受标准方面的信息。若每次提交的解决方案出现错误,就会受到加时惩罚。毕竟,在处理顶级计算问题时,谁也不想浪费客户的时间。在最短的累计时间内,提交次数最少、解决问题最多的队伍就是最后的胜利者。

  在IBM开展的众多学术活动中,赞助ACM-ICPC赛事占有十分重要的位置。此举旨在促进开放源代码编程技巧的发展,培养更具竞争力的IT工作人员,从而推动全球创新和经济增长。

  ACM-ICPC大赛是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。

ACM简介

  ACM(国际计算机学会)是一家科教性质的协会,旨在联合全球计算机领域的教学人员、研究人员和从业人员,开展行业交流活动、共享资源和解决业界难题。凭借绝对的领导地位,ACM始终致力于推行最高行业标准,表彰杰出技术人才,加强计算机行业的整体队伍建设。ACM通过为成员提供终生学习、职业发展及与专业人士联谊的机会,支持其在各自的专业领域取得长足进步。

历届冠军

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

  年份

  总决赛地点

  冠军大学

  国家

  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年

  美国亚特兰大

  密歇根州立大学

  美国

中国赛区

亚洲区预选赛

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

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

  年份







  1996年

  上海大学






  1997年

  上海大学






  1998年

  上海大学






  1999年

  上海大学






  2000年

  上海大学






  2001年

  上海大学






  2002年

  清华大学

  西安交通大学





  2003年

  清华大学

  中山大学





  2004年

  上海交通大学

  北京大学





  2005年

  四川大学

  北京大学

  浙江大学




  2006年

  上海大学

  清华大学

  西安电子科技大学




  2007年

  西华大学

  南京航空航天大学

  北京航空航天大学

  吉林大学



  2008年

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

  北京交通大学

  哈尔滨工程大学

  杭州电子科技大学

  西南民族大学


  2009年

  浙江大学宁波理工学院

  中国科学技术大学

  东华大学

  哈尔滨工业大学

  武汉大学


  2010年

  哈尔滨工程大学

  天津大学

  四川大学

  浙江理工大学

  福州大学


  2011年

  大连理工大学

  复旦大学

  北京邮电大学

  成都东软学院

  福建师范大学


  2012年

  东北师范大学

  天津理工大学

  浙江师范大学

  浙江理工大学

  成都东软学院


  2013年

  吉林大学

  南京理工大学

  浙江工业大学

  电子科技大学

  湖南大学


  2014年

  牡丹江师范学院

  辽宁科技大学

  西北工业大学

  华南理工大学

  北京师范大学

  上海大学

  2015年

  东北师范大学

  东北大学

  中国科学技术大学

  北京大学

  华东理工大学

  上海大学(特别赛区)

世界总决赛

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

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

  2018年3月26日,方正集团赞助北京大学ACM-ICPC(国际大学生程序设计竞赛)全球总决赛捐赠仪式在北京大学举行。方正集团、北京大学信息科学技术学院与北京大学教育基金会签署了捐赠协议,北京大学副校长王仰麟向方正集团颁发了"北京大学杰出教育贡献奖"。

  2018年,北京大学将迎来120周年校庆。作为校庆活动之一,北京大学将举办第42届国际大学生程序设计竞赛全球总决赛,以此推动计算机教育在中国的普及,激发更多学生学习计算机的热情,为国家人工智能战略培养和输送更优质的后备人才。和北京大学有着深厚渊源的方正集团首次作为全球钻石赞助商参与这项国际赛事。方正集团成为全球钻石赞助商,使得赛事的承办工作有了坚实的保障。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net