国际大学生程序设计竞赛(英文全称:InternationalCollegiateProgrammingContest(简称ICPC))由国际计算机协会(ACM)主办,是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛。 ACM-ICPC以团队的形式代表各学校参赛,每队由至多3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且每年最多可以参加2站区域选拔赛。 竞赛规定每支参赛队伍至多由三名在校大学生组成,他们需要在规定的五个小时内解决八个或更多的复杂实际编程问题。每队使用一台电脑,参赛者争分夺秒,与其他参赛队伍拼比逻辑、策略和心理素质。 团队成员将在多名专家裁判的严格督察下通力合作,对问题进行难度分级、推断出要求、设计测试平台并构建软件系统,最终成功地解决问题。对于一名精通计算机科学的学生而言,有些问题只是精确度的问题;而有些则需要学生了解并掌握高级算法;还有一些问题是普通学生无法解决的,不过对于那些最优秀的学生而言,这一切都不在话下。 比赛期间,每队使用1台电脑需要在5个小时内使用C/C++、Java和Python中的一种编写程序解决7到13个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRSTPROBLEMSOLVED”的气球。 最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。 与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM-ICPC的特点在于其题量大,每队需要在5小时内完成7道或以上的题目。另外,一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。 赛事由各大洲区域预赛和全球总决赛两个阶段组成。决赛安排在每年的3-5月举行,而区域预赛一般安排在上一年的9-12月举行。原则上一个大学在一站区域预赛最多可以有3支队伍,但只能有一支队伍参加全球总决赛。 入围世界总决赛名额(WFSlots)分为参与名额(ParticipationSlots)、奖牌名额(MedalBonusSlots)和其他红利名额(OtherBonusSlots)三类。其中参与名额是从ICPC总部分配给各大洲区的参与名额(ParticipationSlots)中,由各大洲的洲区主席确定并分配给洲子赛区的部分,其中各预赛区第一名自动获得参加全球总决赛的资格;奖牌名额是ICPC总部根据上一年度总决赛结果直接分配给获得奖牌的特定学校的名额;其他红利名额是各大洲区主席从ICPC总部争取到的额外奖励名额。 全球总决赛第一名将获得奖杯一座。另外,成绩靠前的参赛队伍也将获得金、银和铜牌。而解题数在中等以下的队伍会得到确认但不会进行排名。 |