LCT感悟

我是研究僧i 提交于 2020-01-22 10:25:16
  1. 动态树,可删边加边,树剖功能真包含于LCT
  2. Splay操作无论怎么旋,始终保持key的中序遍历,lct就是将深度当作key,用splay来维护树的形态
  3. splay的翻转操作:将左子树和右子树交换,并打上标记。交换两子树意味着所有比它大的数都比它小,小者同理。本应所有节点执行此操作,因此打上标记。
  4. lct对于答案的维护即是利用了splay的区间信息维护能力(splay首先维护的是原树上的链,其次key代表深度,所以点值来源:
    makeroot(x)旋上一点x,即指定x;access(y)在指定x的基础上打通x-y的路径并生成一颗平衡树;splay(y)旋上y,此时利用
    平衡树自带的update,上旋的同时更新所有点值,使得点值等于子树所有点值的总信息(在模板题中是疑惑和),即可得到答案。
    5 .关于cut的三个条件判断,是因为不仅y要在x的splay子树中,还要中序遍历中不存在其他中间点(中序遍历无中间点表示深度相差1,才表示有相邻边)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!