专题总结:LCT

本文深入探讨了LCT算法的各种应用场景,包括路径修改、子树询问、权值及时间单调性处理策略,以及如何结合其他算法解决复杂问题。作者分享了实战经验,解析了实虚边切换思想在特定题目中的应用,并提到了子树修改的难点与解决方案。

正题

      这几天做了十几道LCT的题,板子打了二十几遍,快要吐了.

      大部分较难的题都可以在:这里 找到

      呕心沥血总结出了大概几种套路的方法:

      简单的路径修改,询问

      这种只要记好tag,每次splay记得下放就好了

      复杂的单点修改,路径,子树询问

      就类似[SHOI2014]三叉神经树,shi.这两道题,就是要你维护子树上的信息,这时候要注意在acs的时候考虑变化右儿子的影响,如果有取出一条链这种操作,或者换根,并且信息是沿着深度传递的,也就是说在splay里面是有左右儿子信息之分的,基本都要维护两个方向的东西,以便mkrt的时候交换,复杂的标记下传直接写个atg函数,不要麻烦自己.

      权值单调性,时间单调性

       很多题LCT实际上起到的是辅助的作用,可以通过发现题目中满足条件的边权是可以two-pointers的,或者一些题目中边权是满足贪心关系的,又或者一条边只在某个时间段出现的,都可以在外层套其他的算法来解决,比如说two-pointers,线段树分治等

      子树修改

      这个不怎么好做,大致的做法只能通过顺带维护一个ETT来达成,而且时间复杂度极慢,因为每次acs treap是不满足性质的,所以时间复杂度变成了两个log,目前只会口胡,写这个感觉意义不大,主要还是了解ETT的思想吧.

      运用思想

      LCT本身是没有这种用处的,但是这个"实虚边切换"的思想,却深入骨髓,比如[ZJOI2018]历史

      杂项

      维护可离线的动态图连通性,维护动态直径等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值