通过树链剖分能了解轻重边 Acdreamer 的博客

http://blog.csdn.net/acdreamers/article/details/10591443

然后看杨哲大大的论文,能了解轻重边的复杂度

http://wenku.baidu.com/link?url=4iW8ToWMU5iDC04myUxjT-fGZ5aKYqatHgvXnPIDH9OEY9f1VpuonABlgOPPA8M4pHCxrMuCbLtTt4wOfObeWOb5fDjLPQzToV0z5-obWX7

然后去看人人网博客的势能分析

http://blog.renren.com/share/353190745/12936065071

以及查阅势能分析之类的均摊分析资料

http://www.cnblogs.com/hezhihao/p/4185816.html

回过头看杨哲大大splay的势能分析和lct中access总的splay势能分析

然后看论文的几个操作

看博客的u,v路径求和图解(这个blog)里面有时候点会标反比如H,I 另外u,v Access(u) 首先会对u进行splay 旋转 但是旋转始终是网深度小的点旋转所以,提取的始终是到根的路径,然后又会断开右子树,深度大的点的路径,有可能担心深度相同的点被跟新到父节点上,也就是兄弟节点, 但是原来的偏爱子节点的PreferedPath或者说重边都会断开所以不会影响到这条链上各个节点的update,就算当前子节点有左孩子也是原来的父节点深度较小被旋转到了左侧,所以这里access操作里面只要断开要经过的点的原来的preferedpath,以及自己右侧的preferedpath也就是深度深的路径就行了,如果要经过的点就在父节点的preferedpath上面那么肯定已经就在同一棵splay的Auxiliary Tree上了,直接旋转跟新就是了,然后进行换根,这时候这就是真的换根了,而不是splay的Auxiliary Tree里旋转到根,那么是真的根就要调整深度,左边的深度都要大于根,因为右子树是空的,preferedpath断掉了,所以交换左右子树打标记,深度就都比根大了,然后把另一个点Access上来,这时候会把原来的lca之上的部分的preferedpath断掉,这时候的根点信息是lca(u,v)因为之前对u换过根了,并不是原来根,当然也可以直接换根,也就是再splay一次v相当于把u,v这条链拉直,从lca中在往上跟新到现在的v,就可以直接从v节点获取信息了。

http://www.mobile-open.com/2016/930262.html

看换根的博客图解

http://blog.csdn.net/jeremygjy/article/details/51078087

然后拿hdu oj 4010 对照别人的练手 改动了下我,把提取u,v路径都直接写成了两次换根ChangeRoot(u),ChangeRoot(v),其实只要Access(u),Splay(u),然后Access(v)然后直接处理根就可以了,不过还要找根,就直接换了

http://blog.csdn.net/d891320478/article/details/9181385

这中间又巩固了下splay的3个旋转,中序遍历性质,查找rank删除节点

Lct 动态链接树的更多相关文章

  1. hdu 4010 Lct动态链接树

    #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include & ...

  2. BZOJ 3510 - 首都 「 $LCT$ 动态维护树的重心」

    这题 FlashHu 的优化思路值得借鉴 前置引理 树中所有点到某个点的距离和中,到重心的距离和是最小的. 把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上. 一棵树 ...

  3. 【BZOJ4025】二分图(LCT动态维护图连通性)

    点此看题面 大致题意: 给你一张图以及每条边的出现时间和消失时间,让你求每个时间段这张图是否是二分图. 二分图性质 二分图有一个比较简单的性质,即二分图中不存在奇环. 于是题目就变成了:让你求每个时间 ...

  4. LuoguP2617 Dynamic Rankings (动态主席树学习理解)

    题目地址 题目链接 题解 动态主席树的板子题.动态主席树其实和静态的有很大差别,虽然同样是n个根,但是节点并不能共用,每个根节点表示bit上的一段区间. 所以其实是个树套树的东西来着,外层是bit,内 ...

  5. 动态主席树【带修改】&& 例题 Dynamic Rankings ZOJ - 2112

    参考链接:https://blog.csdn.net/WilliamSun0122/article/details/77885781 一.动态主席树介绍 动态主席树与静态主席树的不同在于:静态主席树不 ...

  6. Mach-O 的动态链接(Lazy Bind 机制)

    ➠更多技术干货请戳:听云博客 动态链接 要解决空间浪费和更新困难这两个问题最简单的方法就是把程序的模块相互分割开来,形成独立的文件,而不再将它们静态的链接在一起.简单地讲,就是不对那些组成程序的目标文 ...

  7. 原创 C++应用程序在Windows下的编译、链接(四)动态链接

    4动态链接 4.1概述 在静态链接阶段,链接器为PE文件生成了导入表,导出表,符号表,并调整了Call指令后面的操作数,在程序调用的时候,能够直接地或者间接地定位到IAT中的某个位置,在PE文件中,该 ...

  8. ELF动态链接

    为什么要使用动态链接? 在现代的linux系统中,假设一个普通的程序会使用到c语言静态库至少1MB以上,那么,如果我们的机器运行100个这样的程序,就用浪费近100MB的内存:如果磁盘有2000个这样 ...

  9. Delphi之DLL知识学习2---静态链接和动态链接

    静态连接 静态链接是指Delphi 编译器把要调用的函数和过程编译成可执行代码.函数的代码可存留在应用程序的 .dpr文件或一单元中.当链接用户的应用程序时,这些函数与过程便成为最终的可执行文件的一部 ...

随机推荐

  1. DataGrip 2020.1 安装与激活

    1 软件下载 百度网盘: 链接:https://pan.baidu.com/s/1kHSq1XS0i4YDF0HuzsxCLg 提取码:djyc 2 安装 解压文件后点击 datagrip-2020. ...

  2. rabbitMQ结合spring-boot使用(1)

    从这一节开始我们进入rabbitMQ的实战环节,项目环境是spring-boot 加maven.首先让我们创建一个spring-boot项目,然后引入web依赖和 rabbitMQ的依赖 <de ...

  3. 灰帽黑客 基本的Linux漏洞攻击

    有两个重要的寄存器负责处理堆栈:基址指针(EBP)和栈指针(ESP),EBP指向当前进程的当前栈帧的底部,ESP则总是指向栈顶 当调用函数的时候,会导致程序流跳转.在汇编代码调用函数时,将发生以下三件 ...

  4. JavaScript动画实例:炸开的小球

    1.炸开的小球 定义一个小球对象类Ball,它有6个属性:圆心坐标(x,y).小球半径radius.填充颜色color.圆心坐标水平方向的变化量speedX.圆心坐标垂直方向的变化量speedY. B ...

  5. easyPOI使用

    更多的easyPOI资源的网在easypoi的官网. 1 在pom.xml中添加依赖 <dependency> <groupId>cn.afterturn</groupI ...

  6. 从零搭建Spring Boot脚手架(3):集成mybatis

    1. 前言 今天继续搭建我们的kono Spring Boot脚手架,上一文集成了一些基础的功能,比如统一返回体.统一异常处理.快速类型转换.参数校验等常用必备功能,并编写了一些单元测试进行验证,今天 ...

  7. 基于Python的AT命令测试脚本

    对于各种有线&无线调制解调器(modem)产品来说,AT命令是事实上的标准接口之一,在工业界被广泛使用. 我开发了一套基于Python的AT命令测试脚本,源代码可在github上获取: htt ...

  8. HBase存储及读写原理介绍

    一.HBase介绍及其特点 HBase是一个开源的非关系型分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDF ...

  9. Android 开发学习进程0.11 pageview relativelayout 沉浸式标题栏

    fragment与pageView fragment fragment不可以侧滑切换相关界面,但多数代码位于fragment中,易于维护,同时不会受到多个手势滑动的影响 pageView pageVi ...

  10. YAML简要入门

    这是一篇简单的YAML入门教程,目的是让你知晓什么YAML,以及YAML的基础语法.方便接下来学习如何使用Golang解析YAML.如果想获得更多YAML的知识,请查看http://yaml.org ...