本文提及的“真理”:“师傅领进门,修行在个人”,“好的程序员是代码堆出来的”,“一个算法你不能在半个小时里写对就不能算学会”,“天道酬勤”,“兴趣是最好的老师”。
OI,全称应该是Olympic Games In Information,信息学奥林匹克竞赛。
我从小就对电脑感兴趣,但我根本没想到,OI会是我高中生活中最重要的那部分,更没想到能通过感兴趣的东西混到一张科大的保送生录取通知书。
我初中是在汇文上的,我们那一届没有开OI兴趣班,因此我是从高中开始正儿八经地学OI的(初中时某人曾送我一本书,而且似乎一直因为这个自认为是我的启蒙老师 –___–| )。
记得是高一的一节电脑课,我们的电脑老师,陈老师,让我们用《金山打字》练习打字。然后,我每秒30个汉字的速度引起了陈老师的注意。他过来,问我有没有电脑基础,学没学过编程,想不想学,我一一回答,最后他让我每个礼拜天上午来机房。
我觉得我很幸运,我应该谢谢陈老师。如果我当时没有被陈老师看中,只怕我现在正在准备下午的英语高考。我算不上千里马,但,陈老师是我的伯乐。
开始一段时间和我一起学的有六七个人,半年之后连我只剩下四个。我们高一大部分的时间学的是C++的语法,高一快结束时开始学数据结构,一个暑假加上高二NOIP2006之前的一段时间把数据结构学了个八九不离十。四个人中,我可以说我是学得最认真的,原因很简单,我对编程感兴趣。当时一个礼拜陈老师会布置大概六道题目,我一般至少做四五道,而且是完整地做出来。我记得某P经常只做一两道,问他某道题为什么不做他只有两种回答:“我会做了,还做它干吗?”和“我不会做,你让我怎么做?”。
高一下学期我参加了一次所谓的AHOI的六安地区选拔赛,这是我第一次参加“正式”的比赛。我以180分的成绩和另一个人并列六安市第三,但最后不知道因为啥原因被涮掉了,没能去合肥参加AHOI。
高二的NOIP2006,我和我们C++组里的某C过了初赛,我全市第三。另外两人很不幸地挂在了初赛上。因为我极度缺乏比赛经验,导致复赛的第一题犯了个极其弱智的错误,考了80,和一等奖失之交臂。某C更可惜,因为没有比赛经验,他按照平时练习时的做法在输出文件名后面加了个“.txt”,光荣地得了0分。
NOIP2006之后,周末的电脑课就不再上了,我也有很长时间没碰OI。高二下学期我被赵老师喊去参加07年的AHOI,以270分拿了个极其鸡肋的三等奖,郁闷的是某W的280分就是二等奖了。
回想高一高二,我是不知道什么叫努力的,只是凭着兴趣跟在老师屁股后头学。没能在NOIP2006上拿到一等奖是个遗憾,但事实证明这不是个坏事——只靠一个名次靠后的信息学一等奖,想保送个好学校,很难。
高三第二次月考之后我决定参加NOIP2007,目标就是一等奖。因为陈老师基本上没有正儿八经地教过我们算法,所以当时的我头脑中还没有算法这个概念,动态规划也就知道个名字,数据结构更是因为“年代久远”而早还给陈老师了。从9月到11月,两个月的时间,我几乎是把高中OI除了语言的部分自学了一遍。
师傅领进门,修行在个人,这是真理。那两个月我每晚晚自习回来至少要在电脑面前坐两个小时,有时候某个程序出错了我能Debug到凌晨一两点,睡觉前去网易看看体育新闻都觉得是一件很奢侈的事情,游戏聊天想都不敢想……
当时也没觉得多累,因为有兴趣,只是上课打瞌睡被班主任请到办公室的次数多了就有些郁闷。两个月里,我掌握了NOIP范围内经常考到和可能考到的算法,掌握了常用的数据结构及算法,更重要的是写了差不多上万行的code。因为在网上看到过两条“真理”:“好的程序员是靠代码堆出来的”;“一个算法你不能在半个小时里写对就不能算学会”。
天道酬勤,NOIP2007,我算是成功了,270分,省第七名。我当时的“战术”是求稳,一个半小时做完两道半题目,剩下一个半小时全用来检查调试。第三题的高精度部分放弃了,第四题考的是图,有思路,但程序太复杂,没敢写。
因为这个第七名,我才有幸能参加科大的通过率极高的保送生面试。如果成绩差一点我估计就要参加笔试了,而笔试,某W都没过,可想而知,我过的可能性几乎为0。
按说我高中OI生涯到此就算结束了,可今年四月底忽然被江老师“赶”去参加AHOI……又是省第七,二等奖,一块80G的日立移动硬盘。
我大概可以算得上六安这个OI整体水平差劲的地方的OI的成功者,但和其他地区相比我什么都不是。现在想想,高中阶段学习OI,高一那个暑假是最好的时间。
最后,致学弟学妹:兴趣是最好的老师。学习OI,没有基础不要紧,但没有兴趣就最好趁早放弃。