七月末八月初,我和荣瀚先跟随倪同学老师到福州培训,后来在地灵老师的带领下去江苏昆山夏令营参加培训,回来一段时间后,八月中旬我们又去了江苏常州夏令营培训,接下来我将阐述我的培训感想。

我有幸能在竞赛省一等奖保送资格取消之前仍有机会获得报送资格,于是我和荣瀚都互相鼓励,努力学习。不得不说,换个地方培训效果的确比窝在学校机房、窝在宿舍自学好得多。首先我和荣瀚去福州蹭课,遇到初一小神牛,内心也非常羡慕,但终究需要自己努力去达到那个高度。在福州培训的时候,我基础不好的一面马上就暴露出来了,一个是代码打得太慢,另一个是代码风格不好。我之前做套题训练的时候,总是缺少激情和急迫感,对自己也不自信,所以成绩总是一般般。

我认为代码打得慢是因为思考太少,我每次做题之前都会花五分钟左右理解题意和想算法,一旦觉得自己找到了正确了解法我马上开始打代码。无需辩解,事实证明这种做法是不正确的、有风险的。实际上,每当我想到了正确解法,我仅仅是想到了,但总做不到,因此打代码的过程中会碰到大大小小的细节问题,从而导致了代码打得慢、调试更慢的不良后果。

第二个问题是代码风格不好,我之前每学一个新的算法或者数据结构,我总是先学理论知识,然后自己思考,自住打出代码,这样做有一个弊端,就是代码长得异常难看。现在碰到的知识越来越多,很多代码都是有模板的,比如堆排、快排、最小生成树、最短路径等等,都是有模板代码的。对于这些模板代码,最好的学习方法应该是先学理论,然后背模板,组后通过模板再加上自己的理解,打出有自己风格、有利于自己理解的好代码。我认为这种方法是一种在实战中非常有效的方法。

很快,我们就告别福州去江苏昆山了,昆山夏令营的训练方式略有不同。一开始我们要进行AB营分营考试,于是我们发现分营考试题目难度略低,而且是在ACM系统上评测的,所以给我们几个小时,搞来搞去也都搞出来了。在A营,上午听课,下午练题,不同的是练题不再是统一评测,而是在ACM系统上提交。这样一来,我们可以很快知道自己哪些题目AC了,哪些题目W了,碰到不会做的题目可以马上问学生教练。虽然如此做法有利于提高效率,但是缺少在实战中的感觉,毕竟实战中,每个人只有一次提交机会。

在昆山培训期间,我便开始纠正我在福州发现的弊端。尽管当时我们是用ACM系统评测的,但是我总是努力一次提交过最多的点,一旦有一题我不会做,提交多次都没有AC,我就把这道题目列为我一开始就不懂得题目,并进行反思。打代码前我总是尽量一次性思考得尽量全面,这样打代码的速度也大大加快,于是我的纠正第一个弊端便有了显著的效果。在那几天的培训期间,成绩有好有坏,由于之前都是用ACM系统评测的,缺乏实战的真实感,因此最后两天的考试还是有一天考得不好。不过,通过这样的培训,我很快又找到了自己的新缺点:搜索、动态、建模图论学得不好。

在昆山培训完后,我们就回到福建,但我并没有回去上课,而是呆在宿舍练题,一面是该昆山的题目,一面做倪同学每天早上发给我的题目。我都是早上模拟实战做题,下午改题,晚上要么改昆山的题目,要么看看书,顺便学点新东西。倪同学发给我的题目都是福州某夏令营的题目,除了两题我觉得没能力改出来,其余的都改到AC了。回家休息两天后,我们又去了江苏常州夏令营培训。

江苏常州夏令营的培训模式比江苏昆山夏令营的培训模式要好得多,因为在常州夏令营练题很有实战的感觉,我也趁此抓紧时间训练积累伪实战经验。在常州夏令营我还着手纠正我的代码风格不好的弊端,由于我之前几乎没有背模板代码(除了快排),于是我只能对着模板代码直接改成自己的风格,这样子不仅改良了自己的代码风格,还间接改善我打代码慢的问题,真心非常棒!

在江苏常州夏令营是没有午休时间的,因为这段时间要用来向学生教练提问,这对于我这个有午休习惯的还是来说很不适应,导致我下午停课有时候会困。每天中午评测结果发下来后我都会进行比较和反思,然后总结,我认为就算你不懂得如何总结,但多思考总是有好处的,好处不仅仅是你获得了新知识,还有利于你学会如何进行总结,没有总结,培训的价值就低了一层次了。我每天总结完后,我都会把领悟到的东西在第二天早上的练习中应用上,这样直接导致了我成绩的平均趋势就是一天好一天坏,不过这时候成绩不是最重要的,最重要的是学到的知识和累积下来的经验。

终于,在江苏常州的培训也结束了,回到学校后花了一天半挑了一部分有必要改的题目都改AC了。于是乎,我把我的整个暑假都献给信息学了,好吧,貌似自从我进了机房,就不再有假期了。然后应本地机房的惯例,我把脑子里记下的东西一股脑打成这篇培训感想,这中间如果有错别字,纯属超纲。本篇培训感想都是我个人体会和总结,应该不会有雷同。最后,必须习惯性地感谢倪同学的培养,辛苦给我们创造培训的机会。