快退役了还写博客,我真是棒棒呢 >_<
这道题网上通用的解法是LCT,虽然LCT的确可以做,不过我还是一直惦记这宦壕从合肥回来以后嚷嚷着这题我是用可持久化并查集+CDQ分治过的
(当然了,他肯定是在吹牛,我怀疑他根本不知道可持久化并查集是什么。。。可回滚并查集和可持久化并查集还是有些区别的
可持久化并查集要用可持久化数组(即可持久化线段树实现),可以回退任意历史版本,但是实际上没什么用,可回滚并查集在cdq分治、莫队中都有很广泛的应用,
他使用按秩合并的方式,保留所有修改,每次将所有修改撤销来实现,实际上就是对某一时刻做副本只能回滚到那一时刻)
我百思不得其解,当然是我比较蠢,以前没见过这类图分治的题
直到前几天要退役了,CCPC-FINAL打了个铜,觉得自己什么都不会,还是学一波吧
这类问题有个非常经典的问题,bzoj 4025
这种动态增删边问题,可以把每条边出现时间都扣出来形成一个区间[st,ed],然后去分治
这种分治的过程很像线段树的查询,复杂度计算也可以参考
cdq维护左区间对右区间的影响实际上是对于左区间维护了一个数据结构(并查集)
并查集维护了rt 该连通块的根 以及 fl 该连通块是否成环了
复杂度应该是O(NlogNlogN)的,但是由于此类题目一般借助LCT,LCT不管怎么写,常数都不小,所以亲测差距不大
学完了发现LCT还有一个最大删除时间生成树,这东西也是妙啊,mar
这道题网上通用的解法是LCT,虽然LCT的确可以做,不过我还是一直惦记这宦壕从合肥回来以后嚷嚷着这题我是用可持久化并查集+CDQ分治过的
(当然了,他肯定是在吹牛,我怀疑他根本不知道可持久化并查集是什么。。。可回滚并查集和可持久化并查集还是有些区别的
可持久化并查集要用可持久化数组(即可持久化线段树实现),可以回退任意历史版本,但是实际上没什么用,可回滚并查集在cdq分治、莫队中都有很广泛的应用,
他使用按秩合并的方式,保留所有修改,每次将所有修改撤销来实现,实际上就是对某一时刻做副本只能回滚到那一时刻)
我百思不得其解,当然是我比较蠢,以前没见过这类图分治的题
直到前几天要退役了,CCPC-FINAL打了个铜,觉得自己什么都不会,还是学一波吧
这类问题有个非常经典的问题,bzoj 4025
这种动态增删边问题,可以把每条边出现时间都扣出来形成一个区间[st,ed],然后去分治
这种分治的过程很像线段树的查询,复杂度计算也可以参考
cdq维护左区间对右区间的影响实际上是对于左区间维护了一个数据结构(并查集)
并查集维护了rt 该连通块的根 以及 fl 该连通块是否成环了
复杂度应该是O(NlogNlogN)的,但是由于此类题目一般借助LCT,LCT不管怎么写,常数都不小,所以亲测差距不大
学完了发现LCT还有一个最大删除时间生成树,这东西也是妙啊,mar