到今天,寒假的ACM训练算是差不多画上一个句号了。从2月1日到今天,一共32天,除去春节浪费的4天,实际上整整训练了28天。直到现在,我还是挺后悔自己之前浪费了13天的时间。不过这二十多天还算顺利,把紫书前11章学完了,最基础的知识点都已经掌握了,知识的广度差不多达到了,下一步的目标就是追求深度上的突破,更好地理解和运用经典的算法思想,同时也要继续学习新的知识点。这段时间,每天早晨起床,匆匆的吃过早饭就是我的敲代码专属时间,睡觉便是深度思考的时间。由于我是发自内心地对这个竞赛感兴趣,对算法感兴趣,因此乐在其中,毫无疲倦之感。一个人,能够坚持做自己喜欢的事,感兴趣的事,就是幸福的。
这段时间潜心修炼内功,我觉得自己的水平的确比放假前提高了很多。以前做一道题可以花上一整天的时间,半天的时间都是在调试,如今很快就能看出可能的错误出现在哪里。但锤炼算法的技艺是无止境的。知道的越多,越觉得自己无知,因为还会有更多新的算法,新的解题思路出现,让你耳目一新。同样是敲代码,总有人的代码是那么的充满灵性。第一遍可能没看懂,等悟出其中的门道时大呼妙哉,连续很多天都意犹未尽。同样的问题,有人就能看透问题的突破点,抓住本质,通过巧妙的推理,转化就能解决整道题。不仅如此,只有学到这个时候才能让你感受到数学在整个算法竞赛中的作用。一个数学水平很高的人,自然看问题的角度就会和常人不一样,而代码就能体现出他思维的深度。一般人认为没有规律,值能盲目搜索才能解决的,有人通过缜密而巧妙的分析就能提出高效,具体的算法。不仅如此,算法竞赛上,拼的不仅仅是算法,更拼的是优化的本领。最经典的就是最大连续和问题,从最初的O(N^3)的暴力枚举最终化为O(N)的动态规划。刘汝佳曾说过:算法竞赛中的测试数据不一定多,但一定是能够筛出有优化的代码和没有优化的代码的。而这上面的锱铢必较就是算法技艺的体现。以后应该多学习这样的代码,努力锻炼自己思维的深度。
总之,我挺佩服自己有这种意志力,执行力,按计划完成整个寒假的训练。但我也有一些不满足,因为中间有几章只训练了例题,没有做大量的习题;有的章节太难,很多例题只能靠题解解决,随后自己看懂了再独立敲一遍。因此,开学后,我计划着先把紫书上薄弱的章节练扎实,然后开始学习《训练指南》,如果CF上有合适的比赛的话,就多参加,锻炼自己的心态,编码的速度和准确度。我希望自己是在准确度提升的前提下,提升自己的编码速度。
大学最宝贵的财富就是时间,这段寒假我也切身体会到了。把空闲的时间都充分利用,可以让自己的生活变得充实,有意义。都说ACM是一场最费脑力的竞赛,搞ACM的算是走上了一条“不归路”。但我认为每个人的潜力都说无穷的,你如果真心喜欢它,就坚持下去吧。有人天资聪颖,也有人天资不足。但要相信勤能补拙,这点我已经深刻体会到了。这期间我见到过有放弃的,也有继续默默拼搏着的。要知道:不如意,不顺心肯定是有的,该来的都会来,但要相信自己最后一定能够克服它们。如果当你被ACM“伤害”了无数次后问自己为什么还要继续坚持下去,请对自己说——“因为我热爱它”。
最后,愿自己的所有付出能够无愧于心。