我的高中OI回顾
我初中的时候跟电脑老是随便学了一点pascal语言,可能算是一个启蒙。
真正的开始还是在高中。
高一开学前的时候,我可以记得还是初中刚毕业的暑假。因为我一直对计算机有一种特殊的兴趣(开始可能还是来源于游戏),我妈妈带我找到了长郡中学的向老师让我在那里学习计算机。这个暑假,我在长郡中学学习和练习,真正开始了与OI的一段不解之缘。
我们培训一共进行了2~3周。把Pascal语言基本上学完了。在这段培训中,我认识了高中最重要的几个朋友,其中包括eipc,以及其它很多一起走到最后的兄弟。(其中有幸听ls大牛讲了递归这一课)其实这段时间玩得比较多,星际天天打,仙剑1通关——有点对不住同志们。
之后回家,慢慢看书。自己摸索出来了回溯算法的写法。之后的就自己在家里做了历年noip的题目(当然大部分都是搜的,没考虑那么多)。
高一开学后又在长郡学了数据结构(10.1长假就这样没了~)。从那个时候起开始感觉到理论的强大,这以后就逐渐喜欢上OI各类基础知识的学习。这个习惯一直保持到现在~更宁愿学习抽象的内容,而不想去切题。这个即是我成功的一大特点,仿佛又注定了我最后的失利。
就这样,高一的NOIP就要开始了。由于初中就对计算机感兴趣,初赛随便就Pass了。然后就停了一个月的晚自习,在我们邹老师(现在去长沙一中了)的带领下,切TOJ(已经不在了)。那时候大概就过了50多道的样子。之后在CJ进行了一些模拟考试,最好的一次混入前10,不过那次确实是手气不错。
不过做TOJ确实给了很大的提高,至少学会了很多新的算法,包括学了搜索和DP。而CJ和我同一批训练的同学还没有开始学DP,我已经可以比较熟练地使用简单的DP了。
这一段训练的时间,同一届的有一批实力比较强的选手给我们讲了题 - 主要是PlaneYang同学。事实上我现在还是非常佩服其广博的知识。然后这段时间还见到了zgl大牛,产生了一系列的敬佩之情。
NOIP2005的比赛是在浏阳市一中举行的:那里风景还不错。3个小时比赛,我就做了1题2题和4题。本来可以拿下170分的(当年130线),不过命运往往要同人开玩笑:我第四题有一个小BUG——输出不应该换行。结果白丢40分,失去了第一个拿奖的机会。
不过很难说这次是福还是祸 —— 如果拿了奖,我也许就停止了。也不会有后面的精彩~虽然最后还是仅以noip1收尾
。
这次比赛中,CJ同届的一批初中开始学习的选手都拿下了noip1等奖,这也充分说明了他们是非常具有实力的一批选手。
这样郁闷地度过了高一的第一个学期。
寒假在家里随便弄了一下,第二个学期也没搞什么。买了一本《计算机算法设计》,基本上就是看那本书和《奥赛经典.基础篇》这样又学习了很多的知识。了解了很多数论的算法。整体来说可能还是有点长进。
接着就在这样浑浑噩噩的情况下参加了HNOI2006 —— 当然赛前还是利用一些休息时间(主要是中午)准备了一下,做了一些别的省省选的题目(那个时候还不知道平衡树,居然让我想出来用排序树解决了一些题目)。说起来,那个时候的知识比现在要少很多,但是思维很活跃。很多算法我都不知道,但是自己硬是想出来ac了题目。
HNOI2006是湖南省选历年最简单的一次:ghy790分进队——当然不能否认ghy属于特别牛的一类人。在day1我还是做得不错的。day1第一题是标准的匈牙利算法,我一点都不知道,自己想出一个每次搜一条路修改的方法——最后几乎和匈牙利算法一样了。第二题是建立在不错的数学基础上,很轻松地AC了。第三题也是随便贪了一下。第四题不会做。最后280分,全省第10。已经是对我一个极大鼓励了。day2考得就不怎么样了,仅仅10分。又算是一个教训把。
我想正是这样一个又一个的教训,才能使得我培养起坚忍的性格。
古人云:天将降大任于斯人也,必先苦其心志,饿其筋骨,劳其体肤,行拂乱其所为,所以动心忍性,曾益其所不能。
以上这句话应该可以算是激励我最多的一句了,因为可能我总是失利把。
湖南省选一完,基本上就到了暑假了。高一就这样结束了,我又参加了长郡的集训。这回我们是做的省队训练的试题,而且初中学习的那个集体总是有人夺取第一。我似乎只有一两次排在最前,其余都在2~5名的样子。这段时间,结识了长郡具有多年经验的学友。
这段时间很多题目都是上一届的选手讲的,而且大部分都没怎么听懂。但是还结交了一位朋友。他也在搞OI,我和他一起做USACO的题目,那个时候,我们正好都做到section3,然后常常一起讨论和比切题速度。他也给我带来了不少的新思想,不过高三时他更大的兴趣在数学方面,我也在这里祝愿他高半夜凉初透考能让他的理想得到实现。
USACO可能又是对我的水平的提高的又一大帮助,因为后面的时间,我几乎已经没有在oj上切题了。除了少部分时间做了1~2道题目(而且没切什么难题)。我把更多的时间花在了看论文和解题报告上。WC的论文中真的有许多精品,可以让人学到许多知识。
这段时间ghy等人决定帮助我们学习OI,于是组织了我们做经典的题目:POI。并给我们讲了几节课。这次经历以及后来zgl的推荐使得我对POI有一种特殊的感情。但是还是切的很少。
在高二的第一个学期,NOIP2006又将开始。今年初赛又简单地PASS。
此时高三的一届已经不和我们一起测试了,所以我们高二的几个人基本上垄断了长郡的前几名。我好像也没有拿过第一,但是第二特别多,所以总名次在前面。因为我的学校并不很重视竞赛,所以很难申请停课,每次到CJ上课都要搞半天。所以我一般停课都比CJ的同学短一点。
最先上OIBH是06省选前,不过时间不多。noip2006时逐渐多了起来,在这个时候,认识了很多网络上的大牛——比如Matrix67。其实说准确地说,我们应该是在命OIBH模拟试题的时候认识的。这其中dd_engi(似乎还欠大家一本书)的作用不容忽视。我也是通过他加入OIBH命题组的。那个时候帮他的题目出了数据,后面又出了一道题目。这样就结识了许多的朋友。(还被PlaneYang强行认出来了)
冬天(也就是寒假)在CJ听了lrj讲课,和lrj打kof97达3天,没赢一盘。这段时间学好了搜索算法,并自己看了《数据结构与算法分析》英文版(看了我2个月,字典快翻烂了)。
这样搞过之后,又回到了学校搞学习。不过这段时间,我把POI的题目打印了出来,在学校把大部分的题目直接做出了算法;不过绝大多数最后没有实现。
不知道为什么,我高二下期发了一次狠,终于使段考成绩进入了年级前10(后面就一直比较好了)。我们班主任便同意了我停课1个月参加CJ的省选培训。我便停了一个月的课,开始了CJ难忘的一个月。
开始几天就是大家切切题。本来我不怎么做OJ的,但是跟着大家做了SGU,那段时间VIJOS也比较流行,于是机房里有epic同学专门做VIJOS。我自己想加点油,于是把WC的论文看了许多,并做了一些笔记。
之后轮流出题考试,我每次大概都排2~3名的样子。也有掉下去的时候。我们做了一些Yali的题目,和自己的题目,感觉可能整体实力比Yali还是差一点(当然省选的结果也说明了问题)。我出的题目可能难了一点,结果把大家给卡了。计算几何题有一个点自己精度还不够,被别人发现了错误。那段时间,有一些外省的同学来了~于是认识了ly, cqf等人,学会了打dota和三国无双,不过水平是很菜的。
日子就这样哗啦啦地过了~转眼就到了hnoi2007。第一试题目特别BT,大家出来之后都是面面相觑。下午也没有出成绩——因为数据老是改。知道晚上10点才通知的成绩。结果我第一试0分!其实也和我的习惯有关,我不习惯做代码很长的题目,应此没有写几乎是唯一能写的几何题(除了cdq大牛做了4题状态压缩DP)
第二天,我就不断告诫自己,要仔细运算,尽量发挥自己的最佳水平。第二天拿到试卷一看第四题图像识别,直接叉了。第二题会做,第三题应该是DP,第一题是WC的论文。于是我马上写了第二题的代码,半小时就完成了。接着分析了一下,第一题不记得解法了,所以做第三题。第三题思路都对了,但是不知道怎么写,于是随便写了个搜索cheat一下,转攻第一题。我这个时候已经决定赌第一题了。
时间从8:45 到11:30,我一共算了4张整张草稿纸之后,设计出了一种算法。成功的解决了这个题目。这是我最悬、也是最成功的一次赌博。这样我便完成了day2。(事后发现我的算法优于WC论文的方法)
下午看成绩的时候还是比较刺激的。我们还在通往Yali(赛场)的路上就接到向老师的电话,要我们快点,说我考得还可以,210分。我想,第三题居然只有10分,真惨,不过考得好为什么还要赶快呢?在这种以后中,我们加快速度,抵达评测现场,向总告诉我说我是第7名,差第6名10分。我当时真是差点激动地晕过去:我以为我又要挂了。然后向老是说:“你赶快去复查,说不定还有转机。”我自己拿到数据和程序一对:发现我是220分。这是我即惊讶又惊喜,赶快找到了竞赛委员会,我的另一名同学AC了第三题,也错了1个点,和我一起问。这下坚定了我的信心,进过检查,居然是cena的数据没配置得好。最后决定我和zc大牛加赛一场,决定最后一个名额。
省选的结果便成了 前4 Yali 5CJ 6我和ZC +赛PK
加赛在之后的第3天,临时通知我赶到长沙市一中参赛。题目很无聊,也很没意思。我和zc大牛每一个题目都一样的算法,一样的结果,不过他第一题不小心输出格式错误(就如同我noip2005所犯一样),结果丢了100分,然后我就进了省队。
在离奇地进了省队之后,学习了Linux和emacs。这个时候才发现以前视野的狭隘。Windows总是会使人视野狭隘的。我自己学习了很多东西,这段时间是我提高的又一个重要的时期:前一届的大牛也回来做了些许指导。特别是yxh介绍了许多linux的技巧。并且我自己看了基本介绍elisp编程的电子书,又参考了linux下的info。最后就比较熟练地运用linux 下 emacs + fpc + gdb 进行工作了。这段时间又加大了代码量,使得我可以写出一些较长的程序而不头痛了。
之后省队在CJ集训。就是天天考试,其中有一天玩了Risk。省训的时候大家成绩都还不错,确没想到NOI的时候整个湖南队全部失误了!
是的,NOI重大失误。本来湖南省队每个人都可以拿金牌的,但都有些这样那样的非智力因素导致会的题目没拿下。最后6人竟然没有一个金牌。不过还好cdq大牛补进了集训队。
我甚至连铜牌都没拿到,真可谓是重大失误了。
NOI应该是我高中OI最大的挫折了。前面那句格言在这段时间发挥了重要的作用。同时epic发来短信对我的鼓励也使我十分感动。之后我就回到了学校继续学习。
之后又经历了一些别的变故,申请北大保送不成。自己和epic报同济又被学校做了一大堆的工作,不过最后还是决定了去同济。只要在一个地方可以做自己喜欢的事,那么我便不必在意别人的说法。这样便是高中的一个结束把。
整个过程中,数学很重要。我发现我的数学知识还是在很多时候帮助了我,无论是数论还是微积分,都可以ac很多的题目。感觉最重要的数学知识是组合。不过我喜欢用母函数,而很多人不用。
后记
1.最近听说cdq进入国家队,那么NOI便不再算遗憾了。
2.计划到大学以后会朝人工智能方向发展,不过如果能发现更感兴趣的事,我很可能会转。
3.和epic在做一个信息学的教学网站:主要是想为大家整理合适的资料,提供合适的指导。也是希望能更多地运用高中学到的OI的知识。网址这里公布了:www.gotonoi.cn。不过还在制作中......
4.写了我2.5hour从0:00 -> 2:30
膜拜一下大牛的背影, 您应该和我一样, 也是今年大一吧.
高中的OI, 我留下太多的遗憾, 无缘WC, 无缘NOI. 但我在这个过程中学会了很多, 也认识了很多朋友, 这让我觉得很值得!
参加了NOI的大牛哇,膜拜一下
Orz学长