8.10-8.16总结
8.10
上午还在做上周的 DS 题单,练习了P10656学习轨迹,这是我对那个题的总结。https://www.cnblogs.com/farenara/p/22359779
这题在考察我找关键性质的能力,还有一些数据结构的实现能力。
然后学习了点分树这个算法,大概意思就是把点分治每一层的重心连边构成一棵新树,用于处理在线,动态修改,不关心树的结构的问题(如连通块,树上距离之类)。
下午继续巩固点分树算法,做了P2056,P4115等题,发现这些题目主要利用的都是点分树上的 lca 一定在原树两点的路径上。
晚上做了 DS 题单里的P5311这个题,这是我的总结。https://www.cnblogs.com/farenara/p/22380423
思路就是把连通块用点分治一层层去分开,扫描线统计答案。
8.11
上午还是在做点分树,P3241,大概是用 vector 优化空间的一个思路。
下午和晚上开始学习一个思想叫做支配对,大概就是在询问点对相关问题的时候可以发现有的范围小的点对已经有了和范围大的点对一样的答案,就可以不统计大的,把 \(O(n^2)\) 优化成 \(O(n \log n)\)。例题是 p7880,p9058等,这是我的总结。
https://www.cnblogs.com/farenara/p/22400165
8.12
上午还是在做 DS 题单,做了 p11945军事基地这个题,难点大概就是想到给线段树节点存标记。
下午做了DS题单里地p6881火灾这题,总结:https://www.cnblogs.com/farenara/p/22429744
这题非常考验对数据图形化的能力,转移到坐标系上之后用数据结构维护也有难点。
8.13
上午完成了DS题单里的无人机比赛,难点在于找性质和代码实现。
开始做 DP 题单了,但是不会,发现做 p9140 要用同余最短路,但是我没学过,就先去学同余最短路。
https://www.cnblogs.com/farenara/p/22454217
这是我的学习笔记。
最后在晚上通过了p9140这题,难点不只在同余最短路,还有结合贪心思想的 DP。
8.14
学习长链剖分优化 DP,这是我的学习笔记,https://www.cnblogs.com/farenara/p/22479802
练习了CF1009F,P5904两个题,长剖优化DP大概就是对状态和深度有关的DP进行优化,类似dsu on tree 的思想,先转移长儿子,继承其信息再暴力合并轻儿子,是 \(O(n)\) 的。
8.15
做 DP 题单里的p15454这题,这题是一个树上背包类DP,卡空间。题解区都是用 vector 随用随毁,还有一种用长剖优化空间的做法,两个我都写了,这是我的题解:https://www.cnblogs.com/farenara/p/22496038
8.16
完成了省选的D2T1,现在认为简单,当时不知为何不会。
去做了DP题单的P10432滑雪这题,考察我寻找性质的能力。
总结
这一周前半段我主要是在完成之前的DS题单,后半段开始练习DP,学习了点分树,支配对,同余最短路,长剖优化DP等内容。

浙公网安备 33010602011771号