LCT动态树学习笔记--个人理解

LCT,即link-cut-tree,用于解决动态树这一类问题,思想上和树链剖分相近,树链剖分通过重链剖分将树划分为轻重链,而之后一般通过线段树进行维护。而LCT则也将树分为两种边(姑且也称作轻重边,反正是个名字而已),但并不通过子节点sz划分,而是一种相对的划分。其通过splay维护当前一棵树中的重链(即一棵splay里所有节点是某一棵树的某一重链),而轻链用于连接一棵树里的splay。splay中以深度为关键字维护重链中的节点,左节点深度比当前小,右节点大,而各个splay间也是越深的splay里的节点越深。因为splay的特殊性质(也不知道哪里特殊,但其他平衡树反正就是不行)所以能灵活的处理链相对关系间的变化,实现换根,连接树,切断树,翻转,维护各种信息等等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值