[我的ACM之路] 初生牛犊

在进大学以前,奥林匹克这个词对我来说,一直是只有神才能参与的运动,诸如各类数学、物理、化学竞赛,我从来都是敬而远之。但是出于天生的好胜心,我也参加过一些比赛,当然都是二流的,不值得一提。

高中毕业的那个暑假,在编程方面,我也只懂一点VB和Pascal。那时候我意识到,需要学一点什么,否则跟不上时代的发展。于是看了Java和C#,这两个语言很相似,从初学者的角度来说基本没什么不同。暑假两个月很短,对Java也只能粗通皮毛而已。

刚进大学一个月左右,在寝室楼门口看到一张告示,说是有一个程序设计竞赛,可以使用Java。当时对Java非常有热情,也对竞赛很有好奇心,于是就报了名。那时候还只是Java 1.4,io很麻烦,我基本不懂怎么从控制台输入,心想比赛之前裁判可能会教一下新人,于是这件事也就没放在心上。

比赛那天,带了两本Java的书就上路了,其中一本里面有讲到标准输入,是一个很烦的方法,手工从System.in读入字符再处理的。好在那个方法可以正常运行,要不然我的处女赛就要以0分结束了。

当时的比赛设在行健楼6楼机房,进去之后随便找了一台机器坐下,等裁判讲关于输入的事情。裁判说了一大堆比赛规则和PC^2使用之类的东西,就是只字不提Java的输入,然后我就开始慌了,翻书敲代码。然后得知我是那场比赛中唯一一个用Java的,寒啊……那段输入的代码敲完之后,看到热身的题是A+B,发现还要再写一个分割输入的方法,于是继续郁闷地写。写到一半的时候,裁判跑来和我说,你有没有交过热身题,我说没有,他说最好交一下,测试一下PC^2,我不好意思说我不还没搞定输入,就把当时可以正常运行的代码交上去,结果自然是WA。

等到分割方法基本写完的时候,正式比赛开始了。一共10道题,在现在看来都是简单题,那时候以为都是难题,就一道一道往下做,不知道能做掉几题,也不知道其它选手能做掉几题。比赛一共4小时,过了2个多小时的时候,裁判跑出来说,已经有人全部做完了。当时那个寒啊,这么牛的人,神啊……比赛中还有一个小细节,有一道题要求输出YES或者NO,我懒,写了Yes或者No,以为裁判会手工判,这样的输出在正规比赛肯定是WA的,但是裁判给了我一个Output Format Error,还特地跑出来和大家说了一下,输出格式一定要完全按照题目中描述的,一点都不能错。这是当时比较感谢裁判的一点,要不然那道题我怎么也不会过了。

比赛结束,一共切掉4题,本来以为是比较差的成绩,然后瞄了一眼排名,发现自己大约能进前10,寒啊……然后裁判说有什么事再等通知,大家可以回去了。

那次比赛之后1个月左右。收到了裁判的电话,说是要去延长开会,也不知道是什么事,就过去了。在那里见到了当时的大牛们。刚到开会地点的时候,看到了裁判,也就是ywy,出于尊敬叫了一声“老师”,然后想想不太对,这么年轻的老师?后来xwm老师介绍的时候,才知道ywy也是学生,还要代表学校参赛,也是一个牛人。在那里也认识了leojay,就是那次比赛切完全部题的人,估计是当时SHU最出名的ACMer了吧,在ZOJ上排在第一版。还有很多牛人,只见了一面,基本不记得名字。在那次开会中,我第一次知道ACM/ICPC这个名词,而那次比赛实际上是集训队的选拔赛,本来选拔赛应该是放在6月份,而03年刚好非典,选拔赛被拖到了9份底。那次开会决定派我跟一支队去北京当替补,刚进大学就有免费旅游的机会,非常幸福^_^。会议结束之后,我问了leojay哪里可以做题目,他向我介绍了ZOJ,于是后来的一段时间里我经常去ZOJ做题。

又过了约一个月,我跟着hl、wl、ywq去北京比赛。在场外看比赛的确是一件比较无聊的事情,特别是所关注的队伍迟迟不能升气球。那次比赛中的最后一题,是一个大数乘法,应该是当时最简单的一道题了吧,我在那里想如果我能上场该多好,第一次出赛就能拿个铜牌回来。当时他们3个多小时才过了那题,比较尴尬。

那次去北京一周左右,我就荒废了一周的高数课,正好是积分的开头,导致后来高数基本没好好学,这和ACM无关,暂且不提。

那一年的ACM赛事就这么结束了,我又回到了正常的学习生活之中。

后来我一直在ZOJ上做题,ZOJ不支持Java,这点我非常不爽。当时我C++基本不会,string的操作都要翻半天书,而且发现status里面排在前列的都是Pascal的提交,于是拿起Pascal的书,开始复习……这段时间算是走了个弯路,花了很多时间在语言的学习上面,算法一点都没有进步,直到我发现了有一个叫POJ的网站。

在发现POJ支持Java之后,我就坚定不移地去POJ做题。那段时光是非常快乐的,当时因为寝室不能上网,做题只能等到周末回家。于是在家的2天时间,成了我题量上升的主要机会。每次周五上完课,冲回家上POJ的期待,都是非常美好的。

纪念一下在POJ的首次提交:

72241 FinalLaugh 1000 Compile Error Java 430B 2003-12-06 17:18:02

后来在1月份左右的时候,zz举办了一次程序设计比赛,类型和ACM/ICPC相同,三个人一台机器,而且要求必须有女生。只是zz当时不了解ACM的计分规则,所以用了OI的计分规则,也就是过一个Case给一定的分数。我当时找了同班的一个牛人spacey,和一个女生,去参赛。成绩非常理想,顺利拿了第一名。大家开开心心地回去了……

大一快结束的5月份,zz成功举办了SHU历史上第一届程序设计联赛,并且在他的努力下,程序设计联赛一直举办到现在,为SHU ACM的氛围提供了良好的支持。感谢zz。在那次比赛中,我也顺利得拿到第一,幸运女神貌似总是站在我这一边,整个大一的经历基本可以算是神话了。


发表评论

电子邮件地址不会被公开。 必填项已用*标注