2016暑期训练总结之:cds

我记得刚踏入ACM的时候,因为ACM涉及一些算法和数据结构,还有以前就对编程感兴趣,所以决定加入ACM,以学习一些上课时学不到的知识,在一开始以为算法就是DP、搜索那些,而数据结构ACM很少涉及,大概就是各种各样的XX树,在后来知道,效率是个很重要的东西,几乎所有的题目都要在1s内得出所有答案,(在zzulioj上刷了两三百道题了,都从来不会TLE,也没有遇到过什么算法),一些看起来很简单的题用一般方法都做不了,而算法即是“算得快的方法”,就是用来快速解决这些题目的。不知不觉上学期就过去了,在寒假的时候自以为在zzulioj上刷了500多道题就算学到很多了,后来才发现这还不如在hduoj上刷100道,其实并没有学到什么东西,大部分时间在清水题,再加上知道的东西不多,过去了一个学期,连ACM中基础到不能再基础的搜索算法我都会,所以在第二个学期,就开始刷一些算法专题,至少后来所有的基础算法都会了,且会做一些扩展性的题目,但是学的越多,就会发现自己不知道的就越多,以前参加的比赛题目都非常简单,以至于给自己了一个“其实学到很多东西”得假象,到后来参加的比赛/练习赛都是AMCICPC性质的,基本上每场比赛10道题都只会1-2道,那时都会感觉恐慌,明明自己学的也不少,基础的算法都会,可为什么1年快过去了,连人家的1%都不到,在第二学期的后半段,我又尝试学些新的算法和技巧,因为听说有暑假集训,如果在学校的话效率应该会很高,而且能学到很多新东西,所以我并没有特别担心,希望寄托在暑假的集训,心里想在集训后实力能够突飞猛进。然后就到了临近期末的时候,7月初,在那个时候虽然集训还没开始,但我已经把电脑搬到了实验室,基本上很少复习(当然最后考试成绩还是不错的,只不过上学期考试科几乎都是满分,这学期只能八九十),都是在刷题,总结一下一年(不包括集训)学到的内容:算法类有DP、搜索(DFS、BFS)、贪心,最短路/最小生成树,数据结构有线段树、并查集,还会一些数论和几何,在nyoj上刷了100多题,专题也刷了100+,看起来学的也不少,然而全是基础,就是不能不会的东西,而其他的,我估计80%听都没听过,20%听过但没有学,集训时学长会讲的,所以就看集训了集训时我们学的内容可以分为4类:①基础DP、搜索、最小生成树、最短路、线段树、并查集、树状数组、STL容器(这个很重要,以前也学了,不过在集训时发现还有几个不会),主要是一些复习内容,都是基础;②KMP、manacher、RMQ、字典树、拓扑排序、匹配问题,也是基础,相对上面要难一些,不过我们之前没有系统的学过,只是了解一点点或是做题不多,暑假时这些专题都进行了细致系统的学习,也刷了不少的题;③AC自动机、强连通、网络流(最小费用最大流、最大流、最小割等)、状压DP、数位DP、区间DP等DP扩展、以及传说中的后缀数组,这些都已经属于难度高的了,之前完全没有接触过,可又是必须要学会的(学长说不算太难,但是学长说的),我们做起题来也非常吃力,前面的专题基本上两天一个,我们平均每个人能做10道以上,而这些专题三天训练,我们就只做的出3-5道左右,但其实说真话,平时我们比赛是很难做到这种题的,有句话说过,当你比赛时只有这些题能做,那么区域赛你已经稳定银牌了(我参考过去年5场区域赛发现的确是这样,比如北京赛区的金牌题就是网络流),但说这些都不重要,重要的还是学,虽然很难,但不能不了解,你至少要知道它是用来干什么的,并且要会用它解决基础的问题,就像学长说的,就怕比赛出个非常非常基础的此类算法题,只要了解的就会做,而你做不出来就会非常吃亏;④尺取法、状压枚举、二分、三分、双端队列、单调栈,这些都是一些技巧,既不是算法也不是数据结构,理论上你足够聪明是不用学的,无师自通,然后并没有这么聪明。以上就是集训时的主要学习内容了,但实际上集训时的比赛特别多,大大小小的练习赛,每场都是5小时,这在我们集训时占了很大的比重,总计10场多校联盟,我们有3-4场做出3题,2场4题、2场5题,其余只有1-2题(0分场),其实这个成绩比我想象的要糟糕,因为一是有学长带,二是暑假集训也学的不少,到比赛时才发现很多题目对应得算法学过,可是就是不会做,剩下那些难度高的数据结构题连看都没机会看,基本上就是一道题卡2小时,就不提了,除此之外还有15级的比赛,那个比赛题目就简单多了,很多都是我们训练过的,做起来挺自信,但在实验室里有时学长会给提示,也就不提了,主要想说的是BC和CF,这两个比赛是积分制的,基本上积分可以完全体现你的水平,每场比赛(特别是CF)也非常的公平,CF题算法不多,主要看思维,打了三场CF总共5题,基本上每次平均两题,然而可以看出一些问题:一是做题慢,一道题要码好久(这类比赛就2小时,非常珍贵),二是容易错,基本上很多时候有些小地方没考虑这题就0分了,并且在比完赛后才知道,学长CF有1800多分,而我只有1500分,这就是差距,就不用和外校的比了(那些区域赛拿金的都是2200+!)。最后在集训时我也明白了一些东西:一是刷题,刷题真的很总要,东西学了不用绝对是不行的,往往做的题越多,就掌握的越好,二是要将一些题目和算法思想保存下来,应为你很多时候都会用到,三是题目要想一想而不是立刻去查题解,不然一到比赛就蒙了,四是学的东西越多,你会感觉自己不知道的东西就越多,现在已经过去1年了,时间真的不多,要抓紧时间!!

posted @ 2022-10-22 18:22  河南工业大学算法协会  阅读(6)  评论(0编辑  收藏  举报