我仅一届平凡人
LCT(Link Cut Tree)可以看作是Splay树维护的树链剖分。我们可以在一个动态树(森林)上维护树链信息。

重链剖分与实链剖分

类比树链剖分的重链剖分:
在Splay树的基础上,我们定义一条实边:

一个节点的孩子节点指向一个节点,这个孩子节点的fa指针也指向这个节点(即双向边)

相对性的,我们定义一条虚边

一个节点的孩子节点指向一个节点,这个孩子节点的fa指针不指向这个节点(即但向边)

我们把一个区块里的所有实边连接起来,构成一个Splay树。实链的顶部被称为这个splay树的根,在这种结构基础上。我们定义几种操作。

1.splay

和普通splay树一样,我们将一个点伸展到根节点

2.access

从一个节点x,将其到原树根节点建立一条全部都是实边的路径。

1.将该节点伸展至当前splay的根节点
2.将虚边上这个点的右孩子连接上这个根节点(虚边实化)
3.向上更新后继续向上伸展(对x的fa节点)

3.mkroot

给原树换根。我们可以想象,我们如果把一颗树的节点当成根节点,只要把此节点到原根节点的路径进行调换就ok了。
所以我们执行:

1.对x进行access操作。此时,x变成该splay树的最右边的节点(因为我们在access操作时,每到虚边我们都把它的根节点连接到上个节点的右孩子)
2.将x伸展至根节点(x此时必没有右孩子)
3.整体反转(从x开始)这条实链

4.findroot

寻找该节点的splay树的根节点

1.对x进行access。
2.伸展x至根节点(此时x的根节点在当前树的最左端)
3.向左递归至最低
4.伸展该节点至根节点(防止数据卡链)
5.返回该节点

5.link

将x,y进行连边(操作1)

1.对x进行mkroot。
2.判断y的splay树的根节点是否为x,如果是直接return
3.将x的fa节点指向(建立虚边)

6.cut

对x,y进行断边(操作2)

1.对x进行mkroot。
2.如果x,y不在一个树上,或者是x,y不是挨着的,直接return
3.断双向边

7.split

把x,y的路径拆出来

1.对x进行mkroot
2.对y进行access
3.对y进行splay

经过这些操作,我们发现,y此时是根结点,且y没有右孩子,左孩子是x,此时就可以访问有关y的任何操作了。

至此基本思路讲完(真的醉了)。

LCT学习笔记/基本思路相关推荐

  1. 【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典

    思路 目标系统实施了强安全措施 - 安装了所有补丁 - 无任何已知漏洞 - 无应用层漏洞 - ***面最小化 社会工程学 获取目标系统用户身份 - 非授权用户不守信,认证用户可以访问守信资源 - 已有 ...

  2. STM32学习笔记之一(初窥STM32)

    怎么做好学习笔记? 答:自我感知-->学习知识-->归纳总结-->自我升华(真正属于自己的知识是,抛开书本,运用时,你还能记得的思想) 自我感知--看到知识概念,先自我感觉那应该是个 ...

  3. 家族关系查询系统程序设计算法思路_【学习笔记】数据库基础 - 查询优化

    目录 什么是数据库查询优化? 影响查询优化的因素 优化策略概述 查询优化的总体思路 语义优化 -- 内容等价性 语法优化(逻辑层优化)---语法等价性 执行优化(物理层优化) 查询优化在DBMS中的位 ...

  4. spring学习笔记06-spring整合junit(出现的问题,解决的思路)

    spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...

  5. oracle强制拉库跳过recovery,学习笔记:Oracle坏块 数据库recover恢复时遇到坏块的解决思路案例...

    天萃荷净 recover遇到坏块处理本质探讨,记录一次在Oracle数据库recover恢复过程中,遇到数据库坏块无法恢复的解决思路案例 如果在还原出来的数据文件中有坏块,而归档日志和联机日志是正常的 ...

  6. 51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

    51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为 ...

  7. Tsai笔记:GPOPS学习笔记(1)—— 高斯伪谱法的最基本优化方程求解思路(例子介绍)

    Tsai笔记:GPOPS学习笔记(1)-- 高斯伪谱法的最基本优化方程求解思路(例子介绍) Tsai三步.(第一步,基本说明.第二步,结果图显示.第三步,代码展示.) 第一步,基本说明. A.问题说明 ...

  8. 最优控制和轨迹规划学习笔记 包含多个实际案例 主要思路是使用优化算法来找到车辆的最佳路径

    最优控制和轨迹规划学习笔记 包含多个实际案例 倒立摆上翻控制 满足车辆运动学约束的路径规划 离散点参考线优化 lattice横向距离规划 这段代码包含了三个程序,我们将分别对它们进行详细的分析. 最速 ...

  9. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. 7.10 数据注解特性--NotMapped
  2. 模板 — 高精度计算
  3. Ubuntu服务器版硬件认证详情
  4. HTML DOM节点的增删改查
  5. inspinia中文管理后台_Bootstrap优秀模板-INSPINIA.2.9.2
  6. 五年级数学上册用计算机探索规律,人教版小学五年级数学上册《用计算器探索规律》课后反思...
  7. 程序员太牛了 公司年会整成代码讨论会
  8. jvm上的随机数与熵_向您的JVM添加一些熵
  9. Hibernate缓存基础知识
  10. 开博第一篇,聊聊 最基本的 “==” 与 “===”区别
  11. 高清壁纸:60款可爱的圣诞节电脑桌面壁纸《中篇》
  12. Python之输入输出
  13. Spring2.5整合ActiveMQ 5.2(P2P文本消息)
  14. FFmpeg音视频同步的问题
  15. merge()函数--R语言
  16. GitHub引入了Reactions来提供对issue和pull request的反馈
  17. jaxen-1.1-beta-6.jar下载,Dom4j的xpath的使用
  18. KEIL编译程序电脑卡的问题
  19. UnixBench测试服务器性能
  20. 下载公司 svn 项目后启动报错之 uniapp no such file or direc

热门文章

  1. 分布式调度平台xxl-job的使用及其算法分析
  2. 线下停摆,线上狂欢,疫情下云健身火了!
  3. cadence SPB17.4 - allegro - 尺寸标注
  4. One-Lin3r:懒人的福音,渗透测试单行化工具
  5. 使用exe4j打包Java桌面程序为exe
  6. css根据某个角旋转,设置旋转中心点
  7. Verilog专题(二十二)Lemmings1
  8. 计算机怎么格式化硬盘,电脑怎么格式化硬盘
  9. Modbus通讯协议(一)——测试工具ModbusPoll和ModbusSlave
  10. 你不去PEACH区块链俱乐部太可惜了,90后的人才呀,佩服五体投地