五一学了很多东西吧,主要是关于树的一系列数据结构
1. 树分治
包括点分治和边分治,边分治不是很好打,所以就主要研究的点分治,点分治总体思想大概是递归图的重心。主要应用是求K距离点对的一类问题,做的题不是很多所以要强化,每一次找到经过图重心的点对求距离,然后递归找下一个重心,这样就实现了比较优化的查找。
2.树链剖分
树链剖分也可以说是轻重链剖分,思想就是选出轻边和重边加入到一个线段树中来维护,主要应用是处理在树上的两点距离RMQ问题,做题不多欠强化。
3.最近公共祖先
没什么多说的,只会写暴力不会写倍增,以后要学一下
4.Link-Cut Tree
动态树的一种,不过貌似树链剖分可以解决部分LCT的题,一般都是选出偏爱边和偏爱点,然后使用Splay来维护,没怎么打,欠强化。
5.伸展树
我只能说这个东西很坑爹,不过算是调出来了,不知道考试能不能打出来。
6.可持续化树
主席树算是代表了,不过没好好打。。。
7.前缀树(字典树)
AC自动机入门必学,掌握的还算可以吧。
8.线段树动态开点
打了一个指针版的线段树可以实现,不过应该可以由更好的实现方法
总之就是学了一大坨东西,然后不怎么会用的状态~
看来要做大量的题了= =