2018年暑假训练总结

假期又即将结束,马上又要迎来新学期。在这个假期中,短暂的放了三天假,其余的时间都在学校训练,补充知识点,做杭电和牛客多校比赛。比起之前吃吃喝喝玩玩乐乐的假期,充实了很多,也有很多收获。

一、假期大体安排 

这个假期都在学校训练,做了牛客网和杭电多校联合训练的比赛各十场组队比赛。还有一些小的个人赛,比如百度之星、EOJ月赛、codeforces比赛、牛客练习赛、Wannafly挑战赛等等。还有15年多校训练的题目,这个主要是以看为主。因为每场多校比赛都是下午十二点到五点,实验室整体养成了十点半准时叫外卖的良好习惯。即使是没有比赛的时候,大家也是准时十一点吃中午饭,稍微有点担心开学后上着上着课会饿。

假期训练一共六个星期,第一个星期只有两场多校比赛。所以第一个周主要是看的15年多校的题目,接下来四个周就主要以多校比赛和多校比赛补题为主,最后一个周主要看饶奇的博客,补充知识点和复习已经学习过的知识点。在训练时并不觉得做了多少事,现在一总结,看起来还是不少的。

在学校和大家一起集训,感觉还可以吧。反正比在家里的效率是高多了,前几个周效率是比较高的,可能是刚来,也比较积极。最后一个周效率明显下降,有时候看着看着题就走神了。静不下心来,大概是开学焦虑症吧。

二、训练总结

   在学校集训时,接触的知识大部分都是之前接触过的加强版。比较大的问题就是理解不透彻,知识掌握不连贯。有些知识大体掌握,但是细节方面总是出错。知识的交叉有明显的问题,知识点的深入应用也不熟练。

  不管是往年的多校题还是今年做的多校比赛,签到题大部分都是思维题+小知识点。对我还说有难度的,训练前几天做的思维题,维护左右区间的,审题就弄了好长时间,一开始理解成了不存在a[j]是a[i]的倍数,实际上是不存在a[j]是a[i]的因子。思路也没想到,公式也没想到,看了题解才明白。单调队列的那道题目,好不容易回忆起单调队列,别说找到正确思路,知识点都快忘了,考试周没做题的后遗症。dfs+剪枝这道题目算是比较简单的,数据范围很小,思路简单,但是一开始数组开小了,WA了好几次。还有带一点小技巧的贪心题目和找规律的数字和图形题目。

   比赛题目考察比较多的是线段树和树状数组,恰好是大一暑假时学习的知识点。做了几道之前比较少接触过的和有点难度的线段树题目。有一道线段树题目,维护区间的最大值,次大值,最大值的个数,区间和,通过比较判断最大值和次大值与t的大小关系,进行更新,直接更新t值影响后的区间最大值、次大值、区间和。如果t>区间最大值,t不对该区间产生影响;如果t<区间最大值并且t>区间次大值,这样t只对原来的区间最大值产生影响,可以直接更改区间最大值,次大值和区间和,对于子区间,lazy标记。对于其他情况,继续向子树更新,直到找到上面两种情况,再向上更新。在以后的多校比赛还遇到过类似的题目,只是当时估计时间复杂度错误,在比赛时没有做出来。这道题目写了两遍,,深入理解了线段树区间更新的延迟标记。

  一些做过的题目重新做,熟悉思路,效果也很明显。把思路理清了做起来还是比较顺利。

  一开始比赛时,虽然之前有心理准备,但做起来还是怪难受的。签个到都难,最后那道题目,一开始想着预处理一下,然后直接查询。但是怎么找也找不到预处理的方法,大小区间之间也没有明确的关系。后来听别人的思路才知道可以用树状数组+离线,但我完全没有之前做过用树状数组查询区间不同数个数的印象,比赛后看了一会才弄明白。图同构的问题,看着数据范围比较小,觉得暴力可以试一下,但在做的时候,具体处理细节也不是很清楚。比赛之后的的讲题直播,讲题人一道题一分钟,这道题很显然,每道题都很显然。这不是来讲题的,是来虐人的。听完讲解心更凉了。

  比赛第二天的补题也是比较扎心的,即使知道了思路也不一定能实现。比赛后具体写一下听完比赛讲解有思路的几道题,具体写的时候还是有很多细节没有注意到,还会出错。做不完的比赛,补不完的知识点,补不完的题目,还要再加把劲。题目主要是思维题,想对思路简单,想不对就比较复杂了。好像思维锻炼也没什么捷径,就是多看题多做题。思路都比较有趣的题目,需要拐弯。当然其他的算法题目也遇到过,但不会做,并且看不懂题解。很神奇的思路,想不到。

  比赛中间穿插着看15年的多校题目,没怎么写题,主要是审了一下题,简单想了一下思路。有思路的题目比较少,大部分都是有一点想法,但最后经过思考被否定。

  随着比赛次数的不断增加,队里的默契程度明显加强,讨论也变得多了起来。后来的比赛比上几次比赛思考的面更广一些,虽然在A题的结果上并没有体现。比赛思考讨论的比较充分,思路也得到了拓展。有一次比赛遇到了一个用kmp的next数组解决的问题,一开始做的时候,在最后的for循环思路有点问题,但是因为数据比较水,还是过了。比赛后才被发现代码有问题,但在交的过程中写了四遍WA,原因是少了一行组数的输出,我居然一直没发现,这种错误也是神奇。具体敲代码的时候会忽略很多细节,要调好几次。

这十几场比赛也遇到了不少构造题,之前没怎么接触过这种题目。构造题目比较绕,想到思路的过程比较坎坷。尤其是添方阵的题目,总想找个公式填上,结果总是找不准。后来听了别人的思路恍然大悟,还可以这么构造。构造题主要就是找规律,试样例。

后面几场比赛遇到了不少数学公式题和物理题。数学题公式题,完全是百度+暴力。比较难的题,oeis出递推公式,emmm。物理题也是百度找论文,利用论文的结论敲代码。

最后一个周看饶奇的博客,重新复习之前看过的知识点,看与知识点相关的题目。把并查集、KMP、字典树、AC自动机等等重新看了知识点和题目,熟练思路。

三、比赛总结

  在多校组队训练中,穿插着几次个人练习赛。这几次比赛是自己参加,深刻的感受到了自己的菜,在做题的时候,有的时候思路有了。但是具体实现代码的时候就有问题,有的题甚至每一条语句都要加一句输出,用于找错。想的是一回事,实际上的代码又是另外一回事。时间就在反复的修改中浪费了。一开始时还真是不大适应自己做题,不适应比赛节奏。之前考试周补各种作业和准备作业都没怎么做题,做题的感觉少了不少,所幸后来慢慢补上了。

  大多数比赛都是是组队比赛,虽然是新组的队。但各自的分工都明确,随着比赛次数的增加,也有了一定的默契,还是比较愉快的。但我的代码实现能力比较弱,不管是个人比赛还是组队比赛,都有很大的弊端,以后要加强这方面的练习。

  我们队的发挥不大不稳定,这个可能是比赛心态的问题。有的时候就是心态不好,比赛有时会出现分歧。而后几次比赛,心态有点浮,心思都不在题上,至少我是这个样子的。以后会注意心态方面的问题。

四、反应问题                             

   1、最大的一点问题就是之前提过的具体代码实现问题,以后要多敲,多想,多做题,克服这个问题。Debug能力太弱,特殊样例发现不了。

2、我的思维太过僵化,看到一道题,觉得它用什么知识点就只会往那边考虑,不会想其他的思路。以前做的练习题都是分知识点的,是什么就是什么,比赛时知识点混着来,有时候就晕了。那些需要开脑洞的题,完全就是做不出来。正在努力习惯跳出来思考问题,拓展思路。这个问题比较大,解决起来也比较难,是一个漫长的过程。那些知识点交叉的题目对我来说也比较有难度。

3、对题解的依赖性太强,尤其是知识点应用比较深的题目,不会的题目,几乎都是照着题解来的。有时候会有思维惰性,遇到阻碍,题目不会了,会下意识地逃避思考,直接看题解,按着题解的思路走。很早就意识到了这个问题,正在慢慢改,还没有完全克服,比刚开始时好点了。必须要克服的问题,有好多问题都是看题解引发的。

4、做题时有时心态会炸,急于求成,缺乏耐心。

还有其他小的问题,比起上面几个还不算什么。以后重点是在训练过程中解决这几个问题。

五、感悟

    已经快要结束了,最后一次假期训练,还挺舍不得的。

    山重水复疑无路,不存在柳暗花明又一村的,但还是不想放弃,也不会放弃。

 

你可能感兴趣的:(训练总结)