【计忆辉煌 2013】Battle of the Brains——ACM,为梦而战(刘星辰)
发布日期:
2013年12月26日
浏览次数:
Battle of the Brains
——ACM,为梦而战
刘星辰 07111004 1120101843
ACM/ICPC,一个充满激情和挑战的竞赛。
初识ACM,是在大一的那个暑假。那个时候我刚学完C语言,正不知该在何处施展身手,就看到学长们制作的ACM暑期集训宣传海报,于是毫不犹豫地报名了。而那个暑假,也是我最充实最特别的一个暑假。由于我们是从良乡来的,没有床位,就在训练基地里打地铺。一张凉席,一只木枕,一层薄被,就是一个暑假。我们每天早上起来,就开始在基地里学算法、刷题。由于是初学,大家都给自己定了“先刷100道水题”之类的目标。虽然经历着各种wa(wrong answer)、tle(time limit exceeded)、re(runtime error)等等错误,但是一想到最终要到来的那个ac(accepted),我们就会变得激情无比。到了晚上,才是最精彩的时刻。我们几十个人,一起挤在一个小讨论室里,开始回顾自己一天的训练,总结收获,交流经验。当然,有时这个时候也会是在三国杀~。
实际上,在基地的每一天都是自己挑战自己的过程,而且做的又是自己感兴趣的事,这样的日子,想想都会让人觉得兴奋。直到最后集训结束,我们集训队队员们要回家的时候,每个人都还是依依不舍。如果说这个暑假,是让我对ACM入门的话,这之后的大二生活和组队比赛经历,才是让我渐渐地迷上了ACM。
这个时候我才慢慢地更加了解ACM竞赛的具体体制。介绍如下,ACM的全称是ACM/ICPC,即International Collegiate Programming Contest,国际大学生程序设计竞赛。它的官方介绍是“由美国计算机协会 (ACM) 主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近 30 多年的发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由 IBM 公司赞助。”。它的比赛的形式是3个人一组,5个小时,解决10道左右包含算法、奇思妙想和编程技巧的题目。选手现场coding,提交代码后返回结果AC或者其它,如果错误的话会增加罚时。最终排名结果根据解题数和罚时来决定。现在 中国大陆每年有5个赛区,而ACMer也是分布在全国各地各个高校不等。
所以可以看出,ACM最重要的就是算法和coding,还有团队协作。而对个人来说,就是要学习算法的思维方式和加强码力。怎么做呢?有两个网站非常好,是前辈告诉我的,就是codeforces.com和 topcoder.com,它们是老外办的网站,会定期(一般是隔几天)举办一次在线编程比赛,届时有来自全世界的hacker们在上面一起做题、比拼技艺。最刺激的要数它们的rating系统,每一次比赛结束,你的积分会根据本次比赛的排名来升或者降,然后在全球有个排名。有了这个排名系统,你还愁没有动力去拼搏吗?但是有一个坏处就是,它们会让你变成熬夜的黑夜党,因为是老外办的,时间都在晚上12以后。我大二的时候就是几乎天天做这个,一个比赛完了期待下一个比赛,每天就在充满激情与挑战中过着。不知不觉,大二就结束了。
大二的暑假,我和另外两个软件学院的学长学姐组了队,准备冲击2012年的Regional地区赛。又是到了暑假,一个可以让你无后顾之忧全心全意做你想做的事情的时间。其实北理的历史ACM成绩不算太好,和“他航”、“他邮”比起来,我们都是差了那么一些的。而作为同是985、211的重点高校,我们当然不甘落后。于是我们暑假集训队的十几个人,又开始了新一轮的奋斗之旅。一天24小时,除了吃饭睡觉,大家都在集训基地度过,享受这思考、协作、敲代码和AC的快感。随着越来越多的比赛经验,见识了越来越多的题目,学到的巧妙思维和编程技巧也越来越多,团队协作也越来越默契,我们的实力也在不知不觉中上升着。而且我们也越来越深刻地认识到,算法和思维,对于编程来说有多么重要,真的是“Battle of the Brains”。在青春有过这么一场“战斗”,有过这么一次拼搏,必定是无悔的青春。
真正该出去比赛了。一个队伍一年只可以参加两场地区赛。我们第一次去的是长春。经过网络预赛筛选,本次亚洲区预选赛长春站现场决赛共有来自全国的104个高校的180支队伍。由于这是今年的第一站比赛,清华大学、北京大学、上海交通大学、复旦大学、南京大学以及蒙古国立大学等国内外诸多强校均派多只队伍参赛,本次现场决赛角逐异常激烈。2012年10月13号上午9点,长春赛区现场赛正式开始。来着北京大学的Ragnarok队前半小时便解出两题,跻身排行榜首位。我校的三支参赛队在开局不顺利的情况下稳定住心情,顶着开局的压力稳扎稳打。我们队三人分工明确,互相讨论,凭借长久积累的编程经验以及长期磨合的团队合作技巧,一共通过了6个题目,获得了银奖。在题数一样的情况下,由于罚时上的差距,与金奖失之交臂。我校的另一个队伍BIT_Ants队一次并全场第一个通过D题,获得了“最快解题奖”,也就是传说中的“一血”。该题也是本次比赛通过率最低的题目,一共56次提交,仅2个队伍通过。
我们充满信心地去了,却是一个不尽人意的结果。银奖第三名,这个尴尬的名次。然而也许正是因为这次的不顺利,让我们好好对自己反思,在下次比赛之前更加专心地训练。经过两个多星期的训练,我们每天一起做模拟赛、一起讨论,在团队合作能力上又有了一些提升。10月28号,金华赛区现场赛正式开始。令人激动的是,我们队2分钟便解出I题,成为全场第一个解出题目的队伍。在比赛结束前1小时的时候,我们通过了5个题目,排名第11位。最后的一小时是最难熬的,对ACM队员的心态、体力、解题能力有着多重考验,同时也是最惊心动魄的。我们保持着自己的节奏,成功解出了B题,该题全场只有上海交通大学和威尼斯879787972支队伍通过。最刺激的是最后5分钟,我们依然在D题上奋斗挣扎,不肯放过这一点点的时间,最后于比赛结束前3分钟终于通过。最终,我们队一共通过了7个题目,队伍排名第7,学校排在第5。这不仅意味着金牌,更意味着威尼斯87978797将有资格参加世界总决赛。威尼斯87978797终于在ACM亚洲赛区出线了!这个激动人心的结果也振奋了北理的ACMer们,相信自己,终究会有回报的。
当然,无论是竞赛还是什么,结果都不是最重要的。自己的努力和拼搏的时光,大家一起奋斗、互相帮助、集思广益的过程,这些才是永久刻在记忆里的痕迹。看很多前辈们的ACM退役贴,里面写的最多的就是对“曾经奋斗过”的自豪和无悔。我们也认识了一群志同道合的朋友,而朋友在一起奋斗的日子是最难忘的。我们对团队合作也有了更深刻的认识,这也是ACM竞赛组队模式的真正意义。
每个程序员都有改造世界的梦想。而ACM就是为了给你这样的机会而出现的。只有打下最坚实的基础,你才有机会去改变世界。而正因为有梦,所以,为梦而战。