前言
暑假匆匆结束了,现在距军训还有3天时间。回望整个假期,我经历了许多,成长了许多,结识了一些朋友,度过了一个充实、拼搏的集训。现在坐于电脑桌前,感慨万千,我从未想过一个暑假会经历这么多事情。在此感谢成都七中,感谢学校给了我这样一个机会;感谢我的教练 hfu,他一直在对我们进行方向性的指导;也感谢学长们的优质课堂,让我收获颇丰;最后还感谢同学,是你们让中午以及课间充满趣味。这个假期的集训,我很少感到疲惫,一是因为有浓厚的兴趣,二是有一群优秀且好玩的同学与我并肩前行!我不能松懈,要以一个积极的态度迎接高中生活!
收获
夏令营
首先我想说夏令营。在此期间我听了许多场讲座,见到了各行各业的精英与他们的有关自己的领域的介绍、科普,或是自己奋斗的故事。这些讲座,开拓了我的眼界,让我看到了一个更广阔的世界。
集训
按时间顺序讲讲我这个假期的收获。
六月
六月末主要是恢复训练。hfu 给我们讲了一些较为基础的知识,后面几天是同学之间互相讲。这段时间我把基础知识基本都补回来了(除了字符串还是较弱),见了一些贪心的模型,把高斯消元给写熟练了(但是现在又有些遗忘)。其他板块都算正常,但是更深入的内容还要到之后才慢慢补回来。
七月
主要讲了两大板块,分别是数学和数据结构;另外还讲了 dp 和图论的内容。
先说数学。我之前数学后面较难的内容都听不懂,现在居然全部能听懂。组合数学和后面 FFT 以及生成函数都听懂了,然后感觉组合数学的方面与计数题息息相关,其中有很多技巧值得去探索,虽然听懂了但是我还只能用他们做一些基本的运用,更灵活的题可能做起来还有一定的难度。或者说目前我认为我最不太擅长的题目类型之一就是计数题。可能我的数学能力还太弱了,甚至有时计数题的 dp 写不出状态,能做出蓝题已经是极限了可能。有的计数题难度不算特别大,然后计算式子的时候套一个什么什么优化(比如 FFT、矩阵优化)就能有紫题往上,这种题还是得写熟练的。还有就是生成函数那一类计数题套上一些纯数学的内容还是挺难的,现在只能暂放,先保证基础一些的题能稳定做出来。数论的题相比起来就算简单了,但是还是要常复习,要把前面的内容学扎实。
数据结构我也不是特别擅长吧,只能说能够理解但写不出代码。我认为我之前对这些东西的理解不够导致我不能独立写出来。
简单的数据结构我现在肯定是能熟练运用的,像队列、栈、并查集什么的。而线段树有关的现在也非常熟练了,可持久化以前不会的现在在讲过、考过后也会用了。但是平衡树还是不太行,fhq treap 还要多写写,平衡树的题也要多写。我认为我对平衡树可能理解不太透彻,所以需要花时间去解决。cdq 分治是用会了,考试考到大概率能写出来。整体二分不太会,应该写写板子题(之前没来得及)。树剖现在也能很熟练的套上数据结构去用了。然后就是得去好好琢磨数据结构的选取,因为有时信息可用多种方式维护,但是不同的数据结构维护时时间、常数、空间、代码难易程度都不同,需要综合考虑、取舍。这个东西是我不太熟练的,需要去多想想。
dp 有关的东西没什么好讲的,它主要根据题目来说。而 dp 一般没有什么固定的板子,除了数位 dp 有基本固定的格式、状压 dp 有一些共同需要维护的。这两类题大多数比较板(还有背包),其他都算比较灵活,可以与数据结构、图论、字符串等很多不同的知识联动。而在面对一道陌生的题目时,我们应当做到冷静,先去多观察题目的信息(包括数据范围、问题)、一些性质。然后对于性质去深入思考,然后判断题目的做法。遇到 dp 题,可以先去想暴力 dp 做法,然后考虑优化。状态优化?转移优化?(利用性质?数据结构?)这些都是 dp 题需要去考虑的。所以这类题需要我们的思维灵活,但是要一步一步慢慢来。从最初的暴力 dp 到正解,需要一点一点改良 dp。
然后我不太擅长期望 dp。可能因为没有接触太多概率学,然后看到概率就害怕。
dp 优化的题主要就是利用题目性质或是转移方程特点进行优化。感觉只要想出了 dp 的状态与方程,这一部分还算简单。然后就是我现在对斜率优化这部分有些以遗忘了,需要复习一下。
图论的话,算是我现在最拿手的了吧(雾。基本的板子,知识点都很熟练了,而且都能很快写出来(包括最短路、生成树、不同的tarjan、拓扑、欧拉回路、网络流),重点要解决的是图论建模,以及一些知识的变形。就比如遇到偏序关系你需要考虑用 cdq 还是分治还是图论建模。不同类型的知识都有各自能解决的问题,而在遇到实际问题时就需要我们去思考如何转化成我们学过的或者我们擅长的。这一过程就很像我们初中做数学物理难题的时候,我们应该以化简问题为目的,这点可以类比信息。最后建模的题需要自己慢慢摸索,总结经验,熟能生巧。
八月
字符串一直是我的短板。感觉这部分不算难可我却莫名不擅长。因为知道自己学的撇所以非常认真,因此学长把字符串拉通讲完后我也基本通关了。除了后缀树后缀自动机不会,其他的都听懂并且自己写过板子了。然后 KMP、trie 树、hash 理解透了,考试考到终于能做了;exKMP 和 manacher 都能够现场手推并写出代码(虽然 noip 好像考不到);ACAM 会写但是理解不是特别深刻,后面 noip 之后再说,PAM 好理解也好写应该是没啥问题。
感慨三天就把字符串补上去了!
八月数学讲了莫反和筛法,终于现在能够自己完全独立推式子了,这是一个很大的进步,然后自己独立写出莫反紫题;筛法除了 \(\text{Min\_25}\) 等科技筛法其他都听懂了,但是杜教筛的运用有点抽象,只要注意好数据范围应该就能想到吧(猜测)。反正现在感觉数论可以暂放了。
博弈论,难!SG 函数没有特别理解原理,不太会用。但是感觉 noip 及以前的话如果考到也只会套一层博弈论的皮考别的,所以目前只要掌握基本的博弈论知识就行。
树上统计信息问题是一个大类,它类似区间统计信息问题。只不过后者是连续的区间,前者是断开的区间,所以处理方式不同。感觉正常区间问题就分治或者数据结构就可以了,但树上的如果让我自己想还真不会,感觉 dsu on tree 和树分治真的很妙。
dsu 就是先求出树的重链轻链,然后每次保留重链信息,合并轻链信息。而分治是每次去找当前的重心作为分治点(均摊下来复杂度最优),暴力计算经过当前分治点的答案。这两者之间有很大的关联,比如他们都是每次统计当前树根的答案,只不过 dsu 是从下到上而分治恰好相反。树上统计类的题我写了接近十道,感觉这两种做法本质上是相同的,对于每道题两种方法也都能做。加上之前帮同学调了好几道题所以写这类题只要想出维护的信息难度就不大了。
最后的高级数据结构都听懂了,树套树写了一点题,kd tree 仅限于听懂。分块和莫队感觉很有用,去年自己就自学过也听过,完全没问题。就是学长找的分块题太难了,全是 Ynoi 的题。我写了一些简单分块就去尝试做了一道 Ynoi 的大分块,写加调了很久,感觉不如复习莫队。莫队我很久没写有点遗忘。
考试经验
- 确定开题顺序,选择自己擅长的题开始有助于增长信心;
- 写代码前验证算法正确性;
- 相信自己能行,不要轻言放弃;
- 做题先看数据范围,不要心慌、浮躁,要确定题目算法;
不足
- 在家容易松懈。改进方法:坚持良好作息,控制手机,坚持体育运动。
- 在学校中午吃饭和午休时看手机,影响下午效率。改进方法:把手机留在书包里。
- 上课时与学长交流还不够(个人认为)。改进方法:晚上回去留预习时间并坚持预习,白天课上有针对性地交流。
- 下午自习的时候偶尔管不住自己想说话。改进方法:如果是题目就和同学出去讨论;否则出去转两三分钟换脑袋。
- 考试如果很久没做出题很容易慌。改进方法:看淡成绩,坦然面对。
规划&目标
近几天
- 补完字符串的博客
- 复习高斯消元并写一道题
- 写一些计数题(蓝到紫)
- 写一些 dp 题(蓝到紫)
- 复习可持久化、写一道平衡树
- 复习分块莫队并各写一道题
- 收拾东西,迎接高中
- 打球
之后
- 复习一下初赛
- 复习线段树的分裂合并,并看一点线段树套 dp/图论 的题
- 写数据结构的博客
- 写 CF*2000 的题
- CSP-S 高分 & noip 高分(尽量)
最后
当初中生活潦草地结束,我才意识到我已浑浑噩噩地过了一个不完美的初中。中考戏剧性的分数让我明白:一份耕耘,一份收获。进入高中,我面对的将是缤纷多彩的活动与紧凑的学习生活,只有合理的调整节奏,坚定自己的目标才能有足够的精力去投入其中。我也该努力了。
标签:总结,图论,听懂,复习,分治,2024,暑假,数据结构,dp From: https://www.cnblogs.com/Nekopedia/p/18378994