ACM竞赛及备战建议

简介

        ACM竞赛全称是“ACM国际大学生程序设计竞赛”(ACM International Collegiate Programming Contest,简称ACM ICPC或ICPC)。这是一项国际性的大学生计算机程序设计竞赛,由美国计算机协会(Association for Computing Machinery, ACM)主办。该竞赛被认为是大学生计算机编程能力的世界级竞赛,很多知名大学均派队参赛。ACM国际大学生程序设计竞赛的历史可以上溯到1970年,当时在美国德克萨斯A&M大学举办了首届比赛。当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。1977年,在ACM计算机科学会议期间举办了首次总决赛,并演变成为一年一届的多国参与的国际性比赛。

一、赛事规则

        面向世界各地在校大学生,以3人内团队形式参与。比赛期间,每队使用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”的气球。
  • 8.赛事注重参赛者创新能力。
  • 9.众多知名赞助方,含金量高,优异者可直接入职世界顶尖企业。

三、赛事构成

        赛事由各大洲区域预赛和全球总决赛两个阶段组成。决赛安排在每年的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美元。除此之外还将承认北美冠军、欧洲冠军、南太平洋冠军及亚洲冠军。

六、备战建议

1.注重基础知识

       万丈高楼平地起,打牢计算机科学基础,如数据结构(数组、链表、堆、栈、队列、树、图等)、算法(排序、搜索、图论算法、动态规划等)、数学(概率、统计、组合数学、数论等)。

2.锻炼编程能力

     可以从以下3个方面入手:

   2.1、 熟练掌握至少一种竞赛中常用的编程语言

            如C/C++、Python或Java。Python也常用于快速原型开发,但在有性能要求的问题上可能不够高效。 

   2.2、刷题

           大量练习过往ACM ICPC的题目,以及其他在线编程平台上的问题,如Codeforces、TopCoder、LeetCode、HackerRank等。

   2.3、注重算法提升

          竞赛大部分都是考算法,深入学习和理解各种算法,包括但不限于搜索算法(深度优先搜索、广度优先搜索)、图算法(最短路径、最小生成树)、动态规划、贪心算法等,是取得好成绩的前提。

3.团队合作

        由于比赛是团队合作的,因此要学会与队友有效沟通,分工合作,例如一个人思考问题,一个人编写代码,另一个人查找错误等。 

4.学习交流

        三人行必有我师焉,与其他竞赛者交流,学习他们的策略和方法。可以通过参加线上社区和论坛,在这些平台上,经验丰富的选手会分享自己的学习经验和解题技巧。

总结

      总之,ACM竞赛是一个非常好的锻炼机会,即使没有获得大奖,也对个人是一个非常好的成长和锻炼机会,最后,预祝各位参赛的小伙伴能取得好成绩。

  • 36
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
ACM竞赛题目PDF是指用于ACM竞赛的题目集合以PDF格式呈现的文件。ACM竞赛是一项全球性的大学生程序设计竞赛,参赛选手通过解决一系列算法问题来展示他们的编程技巧和解决问题的能力。 ACM竞赛题目PDF中通常包含多个问题,这些问题的难度各不相同,涵盖了各种算法和数据结构的应用。这些问题需要选手使用编程语言来实现算法,通过编写程序来解决问题。 ACM竞赛题目PDF的格式一般按照每个问题单独一页的方式进行排版,每一页包含问题的描述、输入输出格式要求、样例输入输出等信息。题目的描述通常会包括问题的背景、输入数据的范围、问题要求的具体规定和输出结果的格式等。 参赛选手需要仔细阅读每个问题的描述,理解问题的要求和限制,并设计出相应的算法来解决问题。对于每个问题,选手需要编写程序读入输入数据,根据题目要求计算并得出输出结果。 ACM竞赛题目的特点是问题难度较高,对算法和数据结构知识要求较高,并且对程序的时间和空间效率有一定要求。因此,选手需要具备扎实的编程基础和对算法的深入理解,才能在竞赛中取得好的成绩。 总之,ACM竞赛题目PDF是指ACM竞赛中所使用的问题集合以PDF格式呈现的文件,参赛选手需要仔细阅读题目描述,并利用编程思维和算法知识设计并实现能够解决问题的程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值