2024.8.18至2024.8.24周总结
本周学习任务
清单
- 树上操作:树上启发式合并、点分治、边分治、树套树、KD树、
- 思想:扫描线
- STL:bitset
- 暴力:分块&莫队
总结
本周讲的知识偏向于树上操作,现在感觉树上操作的题能分析出算法,但距离敲出代码还差一些,树上启发式合并现在已经知道了思路和步骤,常规题目能够想出解决办法了。
点分治学的算是很扎实的,边分治还差一些,这个先不急,树套树比较重要,这个算是一种思想吧,不是一种固定的模板算法,因为可以在线段树、主席树、平衡树等等之类的拼凑起来,我觉得在比赛中的实用性比较大。
KD树算是一个多维的线段树数据结构吧,操作比较灵活,比较常用的就是二位线段树相似的。
扫描线感觉很通俗易懂,也很实用,常见套餐就是线段树加扫描线,一般用于处理坐标系(矩形)中的面积(周长)问题,这个感觉很好理解。
bitset就相当于状压中那个代表状态的集合 \(S\),不过感觉讲了后比单纯用数字表示的方法简洁一些,复杂度上略慢一丢丢。
暴力大法:分块莫队,可以说是特别常见的了,也是暴力算法中的顶尖了,思想上就是把区间分成 \(\sqrt n\) 个块,这样一个块中暴力处理也最多只是 \(\sqrt n\) 次,整块也可以打标记,感觉很好理解,莫队的话,现在搞懂了普通莫队以及带修莫队,第14莫队之类的只能接下来几天补了。
这周学的数据结构比较多,实用的也非常多,现在面对树上操作以及区间内的操作问题可以更好地解决了,接下来的几天,我要先把之前的DP搞完,然后搞一些数据结构和数论的题,让之前的知识能够熟练于心。