数据结构
chasingdreams02
上海交通大学 软件学院
展开
-
左偏树复习笔记
左偏树的形态是向左偏的,每个节点维护左右孩子,权值,父亲和它到最远叶子的距离。①:一开始所有点都是孤立的。②:合并两个节点所在的堆? 一开始要找到这两个堆的根节点。然后从根往下走。假设A的权值小于B(否则就交换AB),那么只要合并A的右子树和B,把合并后的结果作为A的右子树。 递归引用操作。如果右孩子的深度大于左孩子了,就交换左右孩子。③:删除一个节点所在的堆的最小值?直接走到根,输出来,再...原创 2019-04-14 11:58:49 · 91 阅读 · 0 评论 -
虚树学习笔记
Tips:我们求得每个点的dfs序,然后把这些点按dfs序排序,那么他们所有的LCA肯定是排序后某相邻两点的LCA。原创 2019-04-14 11:59:11 · 115 阅读 · 0 评论 -
基于fhq-treap的区间问题
ezoj1852要求写一个序列数据结构,支持区间加,区间翻转,区间最大值。线段树结构能否支持区间翻转?线段树节点记录一个ls,rsls,rsls,rs,打翻转标记。每次下传就交换左右孩子。fhq-treap以下标为关键字分裂,treaptreaptreap中下标序列是始终不变的。理解成在下标序列上面挂的值在不停的变动。具体写法就是splitsplitsplit改成基于sizsiz...原创 2019-04-14 12:01:10 · 629 阅读 · 0 评论 -
Splay与LCT学习笔记
Splay1:rotate1:rotate1:rotate操作无论是左边旋到右边还是右边旋到左边,节点的相对高度都上升了。2:2:2:单旋splaysplaysplay可能会被卡掉,一条链单旋过后还是一条链。3:3:3:双旋分一下几种情况:(x−>to)(x->to)(x−>to)tototo是xxx的fatherfatherfather,此时直接把x...原创 2019-04-14 12:01:37 · 268 阅读 · 0 评论 -
线段树合并复习笔记
线段树合并和主席树不同的是。主席树的节点还要依赖之前的树结构。而线段树合并是若干个分离的线段树合并起来,在创建节点的时候有些不同。bzoj2212按照dfs的顺序处理。显然一个子树内的交换只会影响该子树,所以可以贪心得对于每个子树决定是否交换。算到叶子节点的时候新建一颗logloglog个节点的权值线段树。合并左右儿子的时候,实际上是合并左右孩子的两颗线段树。不交换的话就是前面的大权值区间的个...原创 2019-04-14 12:02:39 · 108 阅读 · 0 评论 -
主席树复习笔记
小总结:(静态全局第k小排个序就没了)(单点修改+全局第k小平衡树就没了 或者离散化+权值线段树(详见暗黑破坏神))(静态区间第k小一般的主席树或者分块,分块比主席树慢)(区间修改+区间第K小。主席树+线段树套树状数组 或者 分块块内二分)luogup3834静态区间第k小对于每个前缀建立权值线段树。每增加一个节点,只会修改一条链。采用引用的形式自上而下修改。...原创 2019-04-14 12:02:52 · 108 阅读 · 0 评论