首页 > TAG信息列表 > 实链
动态树 $(LCT)$
目录动态树 \((LCT)\)前言基本思路及实现\(\text{Part I}\) 实链剖分\(\text{Part II Splay}\)\(\text{Part III}\) 核心操作 【模板】动态树(\(\text{Link Cut Tree}\)) 动态树 \((LCT)\) 前言 \(\text{LCT}\),全名 \(\text{Link Cut Tree}\),一般基于 \(\text{Splay}\) + 实链剖分#LCT,树状数组#CF1137F Matches Are Not a Child's Play
题目 分析 考虑从删除序列末尾来看,最大值一定在末尾, 然后与次大值之间夹了整条路径的点,降序以此类推 实际上从小到大是每个点到最大点的路径被打通的过程,由此分成若干条实链。 删除序列的位置实际上是到实链底端的距离加上其它实链底端小于该实链底端的实链总长度之和。 考虑维护LCT 小记
这次不是整活了,记个笔记,加深下印象。 \(\text{1. LCT}\) 引入 题目描述 给定 \(n\) 个点以及每个点的权值,要你处理接下来的 \(m\) 个操作。 操作有四种,操作从 \(0\) 到 \(3\) 编号。点从 \(1\) 到 \(n\) 编号。 0 x y 代表询问从 \(x\) 到 \(y\) 的路径上的点的权值的 \(\text{x[cf1137F]Matches Are Not a Child's Pla
显然compare操作可以通过两次when操作实现,以下仅考虑前两种操作 为了方便,将优先级最高的节点作为根,显然根最后才会被删除 接下来,不断找到剩下的节点中(包括根)优先级最高的节点,将其到其所在树根的所有节点从下到上依次加入到序列的开头并删除,不难发现最终得到的序列即为燃烧的顺序浅谈 LCT
实链剖分和树链剖分的区别 树链剖分有一个更专业的名称 :轻重链剖分,即为根据子节点的子树大小来剖,虽然树链剖分有很好的性质 ,但是还是存在缺陷的。例如 : 树链剖分将树剖完之后是静态的,(无法进行修改了,但不代表就不能换根了。)也就是说树链剖分只能针对于树的结构不变的情况下操作。