本文作者张子威毕业于北京一零一中学,在NOIP2010以130分获得提高组二等奖,在NOIP2011以470分获得提高组一等奖(北京市第五名),2012年被保送清华大学工程物理系,2016年保送清华大学计算机系攻读博士。本文是作者张子威参加NOIP 2011后写的高中OI生涯的简要回顾。

从第一次接触信息学到现在2年多了,真正投入的时间也的确不长。回首往事,感慨颇多。

一. 初识

第一次接触到OI,是在初中毕业的那个暑假,从英国回来之后。因为从小就喜欢玩游戏,所以没怎么犹豫就报了名。前五次课是跟着OI界的传奇人物,国家队教练胡伟栋老师,从C++基本语法开始(现在想想真是杀鸡用牛刀= =)。在学完了赋值、判断、循环、函数之后,因为种种原因,没有继续上课,自己看了看数组、指针,就参加了

NOIP2009。到考场看了题目才发现——文件输入输出是什么?(囧)但从那时起,我就充分发挥骗分优势,不会输入输出也得了30分!(其实吧,就是编一个空程序,然后连.out文件一块交上去了= =)

二. 懵懂

在NOIP2009以后,一直都没有好好学。直到2010年暑假,在商老师的要求下,去参加了八一王老师的基础课,才第一次知道了什么是贪心、模拟、搜索、高精度、DP,才第一次知道OJ这个词。从上海世博会回来以后,每天在家,上YB(现在已经改版成marcool了)刷简单题,大概做了有100道吧。回想起来,这可能就是我打牢基础的时间。

高二开学后,参加海淀区比赛,混到了一个一等奖,瞬时间自信满满。虽然只会这点基础,却怀着虚浮的自信参加了NOIP2010,结果悲剧的只得到了130分,很受打击(但居然还卡线得了2等奖),再加上学校事情也比较多,信息学也就这样放了下去。

三. 成长

真正可谓成长,是从2011年寒假开始到2011暑假,参加了北京冬令营和北京集训队。在队里,大牛遍地是(人大附的放爷、强哥啊,八十的黄纪元罗剑桥,四中的何行舟等Orz),我也第一次知道了什么Dijakstra,SPFA,网络流,Prim,Kruskal以及并查集、线段树等等,虽然只是略懂皮毛吧,但也算见过点世面了(其实到现在还有很多没学会的,什么凸包计算几何等等)。甚至还妄想过进北京队,凭我的实力,结果就自然不用提了。但总之,这段时间是我真正开始成长的时间。

除此,还有刘汝佳的《算法竞赛入门经典》,非常好的一本书,是我唯一通读一遍的算法书籍,收益颇丰。如果这次能侥幸得一等奖,一定程度上与此书脱不了干系。

四. 成熟

在几经波折之后,为了争取这最后的机会,我还是回到了胡老师那里。虽然只有短短的五次课,却使我比较系统地掌握了NOIP的知识结构,也弥补了很多知识上的漏洞,使我真正有了冲击一等奖的实力。

然后,就是做题。从这学期开始,基本每周都要抽时间做点题,前一周更是一直在家,每天大概三套题的训练量。NOIP原题从1998年到2010年,还有E-star6套模拟题,tyvj各种月赛,rqnoj月赛……在做题中弥补知识漏洞,找手感。至此,我的OI生涯才算成熟。

最后的最后

就是这2天共6小时的比赛,感觉应该还不错。无论结果如何,基本上已经做到了我的最好。即使有遗憾,也绝不后悔。至此,我的OI生涯已经算是画上了圆满的句号,至于是否得一等奖,就算一个后记吧,下周就知道了。

(编者注:在本次比赛中,作者以470分获得一等奖(北京市第五名),并获得清华大学保送资格)

当然,除了NOIP,OI带给我的还有很多:欢乐的CCC清华邀请赛,很郁闷的北大信息夏令营等等等等。但这一切,今天也算到了一个终点。

再次感谢这两年OI生活中的一切,不管你们是否还记得我:学校的商老师、赵老师,八一的王老师,人大附的叶老师,北京的梁老师,已经毕业的李雨辰学姐、陈高远大神,初三的李奇阳大神,高二很欢乐的叶昊雷,人大附的张放神牛、范浩强神牛,八十的黄纪元神牛、罗剑桥神牛,北大附的硕硕、西瓜控咪咪、渊姐,以及marcool、tyvj、coderspace、zju、hdu、rqnoj、e-star论坛等OJ。

对了,如果某天有某个OIer或者预备OIer看到这篇文章,推荐几本信息学奥赛书籍:第一本是谭浩强编的红皮《C++程序设计》,对学语言很厚帮助;第二本是蓝皮的《零基础学算法》,很适合初学者;第三本就是刘汝佳的白皮《算法竞赛入门经典》,适合系统学习(初学者可能会感觉难)。当然,黑书《算法导论》和《算法艺术与信息学竞赛》也是很不错的书,就是有点难,NOI比较合适……