HDU 5967 小R与手机 CDQ分治+回滚并查集

快退役了还写博客,我真是棒棒呢 >_<
这道题网上通用的解法是LCT,虽然LCT的确可以做,不过我还是一直惦记这宦壕从合肥回来以后嚷嚷着这题我是用可持久化并查集+CDQ分治过的
(当然了,他肯定是在吹牛,我怀疑他根本不知道可持久化并查集是什么。。。可回滚并查集和可持久化并查集还是有些区别的
可持久化并查集要用可持久化数组(即可持久化线段树实现),可以回退任意历史版本,但是实际上没什么用,可回滚并查集在cdq分治、莫队中都有很广泛的应用,
他使用按秩合并的方式,保留所有修改,每次将所有修改撤销来实现,实际上就是对某一时刻做副本只能回滚到那一时刻)


我百思不得其解,当然是我比较蠢,以前没见过这类图分治的题
直到前几天要退役了,CCPC-FINAL打了个铜,觉得自己什么都不会,还是学一波吧
这类问题有个非常经典的问题,bzoj 4025 
这种动态增删边问题,可以把每条边出现时间都扣出来形成一个区间[st,ed],然后去分治
这种分治的过程很像线段树的查询,复杂度计算也可以参考
cdq维护左区间对右区间的影响实际上是对于左区间维护了一个数据结构(并查集)


并查集维护了rt 该连通块的根 以及 fl 该连通块是否成环了
复杂度应该是O(NlogNlogN)的,但是由于此类题目一般借助LCT,LCT不管怎么写,常数都不小,所以亲测差距不大


学完了发现LCT还有一个最大删除时间生成树,这东西也是妙啊,mar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值