ACM国际大学生程序设计竞赛及练习题库

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届的全球总决赛上三夺冠军,浙江大学参赛队在美国当地时间2011年5月30下午2时结束的第35届ACM国际大学生程序设计竞赛全球总决赛荣获全球总冠军,成为除上海交通大学之外唯一获得ACM国际大学生程序设计竞赛全球总决赛冠军的亚洲高校。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一枝独秀演变成目前的亚欧对抗的局面。

简要规则

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

  比赛期间,每队使用1台电脑需要在5个小时内使用C、C++、Pascal或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台电脑,使得时间显得更为紧张。因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。

竞赛流程

大赛现场

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

  2.竞赛中至少命题6题,至多命题10题,试题描述为英文,比赛时间为5个小时。

  3.竞赛可以使用的语言:C++、C、Java和Pascal。但final赛只有C/C++;

  4.重点考察选手的算法和程序设计能力,不考察任何Windows编程知识;

  5.选手可携带任何非电子类资料,包括书籍和打印出来的程序等;

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

  返回结果:

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

  2.Wrong Anwser. ---答案错。(WA)

  3.RunTime Error. ---程序运行出错,意外终止等。(RTE)

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

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

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

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

区域和全球决赛

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

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

形式与评分办法

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

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

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

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

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

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

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

奖励情况

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

脑力之争

头脑风暴

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

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

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

IBM的承诺

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

关于ACM

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

ICPC2008简介

IBM的承诺

  第32届ACM国际大学生程序设计竞赛(ICPC)又名“脑力之争”(BattleoftheBrains),其举办宗旨是为大学生提供一个集中的展示舞台,表现他们在五个小时的指定时间内解决实际电脑编程问题的超强能力。

  2007年9月-12月全球已经有来自83个国家1,821所大学的6,700支参赛队伍参加了预赛(分213个赛场举行),预赛结束后仅有100支参赛队伍闯入全球总决赛。全球总决赛将于2008年4月6日-10日在位于加拿大阿尔伯塔省班夫温泉城堡饭店举行。

  这一年度盛事由下列几级比赛组成:

  本地竞赛——各大学挑选参赛队伍,或在本校范围内举办比赛选拔一支或几支队伍代表学校参加下一级比赛。选拔范围为全球30多万名计算机专业的学生。

  区域预赛(2007年9月-12月)——今年的参赛队伍增加了10%(其中不包括参加初赛的队伍),从去年的6,099支增加到了6,700支。这些队伍代表来自六大洲83个国家的1,821所大学。

  全球总决赛(2008年4月6日-10日,加拿大阿尔伯塔省的班夫温泉城堡饭店)——为庆祝阿尔伯塔大学成立一百周年,一百(100)支决赛队伍将代表六大洲的顶级大学参赛,角逐奖品、奖金和展示权。

  ICPC2011简介

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

  截至目前,大连、上海、北京、成都的网络预选赛已经结束;大连赛区区域赛也于9月25日在大连落下帷幕。大连赛区共有来自一百多所院校的155支队伍参加角逐,比赛中获得冠军的为上海交通大学的“史诗”队,获得金银铜牌的院校、队伍如下:

  

学校排名学校名称队伍排名队伍名
1上海交通大学1史诗 (team29)
2清华大学2DivineRapier (team4)
*清华大学3machinator (team88)
3中山大学4SYSU_Metalgarurumon (team94)
4复旦大学5FDU_BGM (team5)
5浙江工业大学6小和山职业技术学院 (team33)
6电子科技大学7成电-宙斯 (team18)
7北京大学8巴斯特 (team14)
北京大学9若爆了 (team27)
8国防科技大学10阿蕾泡菜 (team52)
北京大学11丽华 (team106)
北京大学12OSU (team48)
9武汉大学13旅途 (team25)
电子科技大学14成电-阿波罗 (team57)
中山大学15SYSU_HolyAngemon (team11)
中山大学16SYSU_AtlurKabuterimon (team51)
复旦大学17FDU_Sanguosha (team43)
北京大学18OSU安格瑞扣得死 (team121)
10北京航空航天大学19北航-1 (team16)

acm练习题库:

http://www.programfan.com/acm/

http://acm.nyist.net/JudgeOnline/problemset.php

http://acm.hdu.edu.cn/

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACM国际大学生程序设计竞赛ACM ICPC)是世界上最具影响力的大学生程序设计竞赛之一。该竞赛国际计算机协会(ACM)主办,每年举办一次。竞赛的主要目的是鼓励和促进大学生在算法和编程方面的技能培养,提升他们的创新能力和团队合作精神。 ACM ICPC的参赛队伍来自世界各地的大学和高等院校。每个队伍由三名大学生组成,他们将在竞赛中解决一系列的算法和编程问题。竞赛通常采用实时计算和编程的方式进行,要求参赛选手在时间有限的情况下,快速高效地解决问题。这不仅考验选手们的算法设计和编码能力,还考察他们在压力下的应变能力和团队协作能力。 ACM ICPC的竞赛内容丰富多样,题目涵盖了各种不同的算法和数据结构。选手们需要根据题意进行程序设计,通过有效的算法思路和编码手段,解决问题并输出正确的结果。竞赛过程中,选手可以使用C、C++、Java等多种编程语言,灵活选择合适的工具和技术。 ACM ICPC竞赛充满了挑战和激动人心的时刻。参赛选手们需要在限定时间内,迅速分析问题并设计出解决方案。他们需要快速反应、紧密配合,充分发挥个人和团队的优势。通过竞赛,选手们可以提高自己的算法分析和设计能力,培养创新思维和解决复杂问题的能力。 ACM ICPC竞赛的经验和成绩对于参赛选手们的学术生涯和就业前景都具有重要意义。获得竞赛的荣誉和成就,可以为他们今后的求职和科研带来巨大的竞争优势。此外,竞赛还为参赛者提供了与世界各地的同行交流和合作的机会,拓宽了他们的视野和人脉。 总而言之,ACM国际大学生程序设计竞赛是一项具有全球性影响力的大学生算法和编程竞赛。通过此次竞赛,参赛选手们可以提高自己的算法分析和设计能力,培养团队合作意识,并为未来的学术和就业发展奠定坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值