ACM暑假训练总结

炎热的夏季即将过去,我们的暑假生活也即将画上句号。这个暑假我参加了学校ACM校队的集训,感觉过的很充实。

从这个暑假的第二个周,我们开始了长达六个周的暑假训练生活。前四个周我们主要是钻研《算法竞赛进阶指南》这本书,每天白天钻研这本书上的知识点和解题方法,增加自己的知识储备,晚上打一场个人训练赛,训练自己的读题做题能力。后两个周主要是进行了组队训练,白天继续看书,看别人写的题解,晚上组队打比赛,训练出题的速度、准确性和团队的配合能力。

经过暑假六个周的训练,我感觉自己真的学到了很多知识,也学到了很多学习方法。通过对前三章基本算法、基本数据结构和搜索的学习,我对基本的算法有了更深的认识,掌握和使用这些算法也更加熟练,有一些不懂的知识,通过和队友的交流,也有所收获,感觉个人的实力水平比暑假训练前有了一定的提高。

后期每个人开始专攻一个算法,我专攻的是动态规划(DP)方面的知识,动态规划的内容对我来说是比较难的,他的思想其实很好理解,就是上一步的操作对下一步产生影响,通过求解每一阶段的最优解,来求解全局的最优解,动态规划要求具有“无后效性”,即已经求解的子问题不受后续阶段的影响。动态规划的难点就在于它的状态转移方程不好推,而且它有很多种不同的形式种类,而且要尽可能的降低它的维度,以降低时间和空间的复杂度,所以做题的时候并不是特别好想,经常是能看出来这道题是一道动态规划问题,但是写不出状态转移方程,或者是写出了状态转移方程,发现复杂度太高,容易超时,但是又不知道怎么降低维度。所以老是做不出来题。还是自己看的题太少了,做的题太少了,积累的少自然不能做到熟能生巧,但也不是全无收获,通过看书,一定程度上加深了对动态规划知识的了解。但是只看知识点未免太空洞,所以通过看大量题解,我也学到了不少使用的方法,虽然还做不到熟练应用,遇到这种类型的题也不一定能做出来,但是也是在不断地积累中得到提高,希望能尽快做到熟练掌握。

通过组队的训练,打各种比赛,我和队友主要训练了彼此的配合和分工,通过一次次不同的比赛,我们也不断磨合。从一开始的几乎毫无配合到后来慢慢的适应习惯,我们之间的配合也默契了不少,能保证两个人做同一道题,第三个人自己开一道新题,有把握的水题自己做,遇到不会的和队友商量,相互之间交换思路,做题的思路也得到了一定的提升。有些思维题,可能只靠一个人想不出来,但是通过交流商量能得到一种可行解。其实,我认为在打团队赛中,胜利的关键可能不在于一个人的水平到底有多高,多强,而在于团队配合,如果每个人都有自己专攻的知识面,三个人打比赛的过程中能够做到配合默契,做题有条不紊,这样也能够取得不错的成绩。

虽然我在暑假的训练中学到了很多的东西,有了很多知识上和学习方法上的收获,但是也遇到了不少问题。前期我看书很细,看的很慢,老是感觉赶不上老师和同学们的进度,也遇到了很多看不懂的地方,遇到这种情况一般就多看几遍,要是实在看不懂就先放过去,然后和同学们进行交流,也能得到不少收获。有些算法的原理很好懂,但是看懂了原理可能很多题可能并不能自己上手写出来,缺乏实际动手能力,这就需要通过看大量的题和自己做题慢慢体会,逐渐的去掌握。不会做的题就一定要看题解,看看别人是怎么实现的,学习别人的思想,通过积累也会有所得。在后期的训练中感觉自己浮躁了很多,很多时候不能静下心来去学习,可能是自己太着急了,看到很多东西自己都还不会,想尽快把一个知识学会,但是心急吃不了热豆腐,浮躁就只是在浪费时间,根本静不下心来学习,本来应该学会的,也学不会了。还是应该自己调整好心态,静下心来,宁可自己的进度慢一点,也要学一点,会一点。争取在学习的每分每秒都不浪费,充分利用现有的时间。

再就是在做题过程中总是被卡题,卡各种各样奇奇怪怪的错误类型,写代码十分钟,debug半小时,也尝试了用各种方法改bug。就比如,带着“ios::sync_with_stdio(false);”就“Wrong Answer”,把“cin”换成“scanf”,再把“ios::sync_with_stdio(false);”去掉就可以过题;把变量定义成全局变量就不对,定义成局部变量就对了;还有的能因为一句赋值语句超时……各种各样的错误也锻炼了我debug的能力,遇到简单的错误类型很快就能改出来,那种怎么都想不明白的bug就只能玄学改,或者自己再敲一遍就有的就能解决了。

训练真的带给了我很多东西,我觉得最重要的是一种充实的幸福感。如果放在以前,我的寒暑假基本都会无所事事,天天沉迷于手机、网络,完全是在虚度光阴,学不到东西,日复一日这样的生活也了无生趣。而通过参加ACM的暑假集训,我每天都很忙碌,把大部分时间放在学习上,主动的、被动的去学习,反而觉得很充实。能学到许多的知识,无论是对以后的竞赛还是对我的考研都有很大的帮助。虽然算法真的很难,但是算法也很有用,而且当你真正去钻研这个算法的时候,你会发现它其实是一个很好玩的东西。

暑假的每一天,我的作息都很规律,过的也很充实。每天一篇的训练日记,让我养成了每天反思的好习惯,反思自己学了哪些知识,遇到的各种问题,我应该怎样才能做的更好。每天反思不只是加深对当天学习的知识点的印象,还通过不断反思自己遇到的问题,去调整自己的学习方法,直到找到适合这个知识点,适合自己的方法为止,也是一种良好学习习惯的养成。还有每个周末的周记也让我对一个周的学习进行总结反思,不断调整自己的状态和学习习惯,也是一种提升。
虽然暑假的训练还没有达到我预期的目标,我也深刻的知道学会算法真的不是一天两天的事,它需要日积月累。我也深刻的知道这个圈子到底是多么的庞大,在这个圈子里我可能连菜鸡都排不上,优秀的人实在是太多了,尤其是那些从中学就开始打的已经有四五年阅历的大佬我们可能到大三都赶不上,但是努力总是会有收获的。到现在我们已经无法决定自己的起点了,但至少我们的未来还牢牢掌握在自己手里,我们暂时不需要和那些大佬比,但是至少要把自己当作自己的敌人 ,每一天都要比昨天的自己优秀一点;把同级起步的人当作自己的敌人,立志超越他们。我觉得学习自己喜欢的东西,坚持最初的坚持,看着自己从开始的一点也不会到了解很多知识,一步一步的进步,真的是一件很幸福的事。未来的日子里也要加油!

你可能感兴趣的:(学习日记)