平衡树
文章平均质量分 62
ZigZagK
一个蒟蒻。
展开
-
非旋转Treap
非旋转Treap总结。原创 2017-04-09 23:54:11 · 720 阅读 · 1 评论 -
【替罪羊树-动态标号+线段树】BZOJ3600[没有人的算术]题解
题目概述定义一种数,这种数只有 00 和 (a,b)(a,b) ,其中 a,ba,b 是这种数。定义 << :1. 00 最小。2. (a,b)<(c,d),c>a(a,b)<(c,d),c>a 。3. (a,b)<(a,c),c>b(a,b)<(a,c),c>b 。现在有 nn 个这种数,刚开始都是 00 。给出 mm 个操作:1.将 a[k]a[k] 赋值为 (a[l],a[r])(a[l],a原创 2017-12-31 00:08:09 · 548 阅读 · 0 评论 -
【并查集+平衡树启发式合并】LibreOJ β Round #2[DP一般看规律]题解
LibreOJ β Round #2[DP一般看规律]题解。原创 2017-07-03 19:23:08 · 625 阅读 · 4 评论 -
【平衡树启发式合并】POJ1741[Tree]题解
POJ1741题解。原创 2017-03-09 20:18:45 · 1523 阅读 · 3 评论 -
【堆+平衡树】BZOJ1058(ZJOI2007)[报表统计]题解
题目概述维护一个可能为负数的整数数列。在最开始的时候,有一个长度为 nn 的整数序列,并且有以下三种操作:INSERT i kINSERT\ i\ k :在原数列的第 ii 个元素后面添加一个新元素 kk ; 如果原数列的第 ii 个元素已经添加了若干元素,则添加在这些元素的最后。MIN_GAPMIN\_GAP :查询相邻两个元素之间的差值(绝对值)的最小值。MIN_SORT_GAPMIN\_SOR原创 2017-12-03 15:22:23 · 369 阅读 · 0 评论 -
【平衡树维护序列】BZOJ3506(Cqoi2014)[排序机械臂]题解
题目概述BZOJ原题意:同OJ1552。BZOJ1552:权限题。城市套路深,我要回农村。给出一个长度为 nn 的序列,执行 nn 次操作,第 ii 次操作需要找到 [i,n][i,n] 中最小的数所在的位置 pp ,并翻转 [i,p][i,p] 。ps:如果相同取位置靠前的。解题报告QAQ,查了两天,发现我没看到相同取靠前。于是我用基数排序将相同的硬是搞成了不相同的……直接Splay,只不过要多实原创 2017-11-28 19:08:45 · 318 阅读 · 0 评论 -
【平衡树维护序列+Hash求LCP】BZOJ1014(JSOI2008)[火星人prefix]题解
BZOJ1014题解。原创 2017-04-25 08:20:55 · 549 阅读 · 0 评论 -
【平衡树维护序列】BZOJ1500(NOI2005)[维修数列]题解
BZOJ1500题解。原创 2017-03-31 09:19:01 · 894 阅读 · 0 评论 -
【平衡树】BZOJ1503(NOI2004)[郁闷的出纳员]题解
BZOJ1503题解。原创 2017-06-30 08:28:27 · 679 阅读 · 1 评论 -
SBT
节点大小平衡树总结。原创 2017-06-29 19:55:00 · 1565 阅读 · 6 评论 -
Treap
旋转Treap的总结。原创 2017-03-03 20:51:30 · 956 阅读 · 1 评论 -
Splay
思想Splay_tree,伸展树,顾名思义就是用伸展来进行平衡的平衡树。伸展操作是把一个节点伸展到根上的操作,当然不是简单的旋转到根,而是:(绿色节点是x,蓝色节点为p,红色节点为g) ①当p是根节点时,只需要一次正常的旋转即可。 ②当p不是根节点,x,p,g“三点共线”时,先旋转p,然后旋转x。 ③当p不是根节点,x,p,g“三点不共线”时,旋转两次x。每次插入,询问,删除原创 2017-03-04 16:43:40 · 838 阅读 · 4 评论 -
Splay区间修改
简介Splay的伸展操作使Splay在某些方面变得很方便,甚至也能够利用伸展操作来进行区间操作! ps:本人蒟蒻,写法可能很奇怪:P。 再ps:首先结构体内部的cmp要写的特殊一点(因为k表示位置):int cmp(int &k){ if (k==son[0]->si+1) return -1;if (k<son[0]->si+1) return 0; k-=son[0]->s原创 2017-03-17 21:05:49 · 892 阅读 · 1 评论 -
替罪羊树
说替罪羊树之前说下朝鲜树 朝鲜树是一种自平衡二叉查找树。其特色就是使用者可以指定一个值,当整棵树的深度大于K时就重建这颗树,因此避免了复杂的旋转操作。重构(重建):把一棵二叉树“拍平”(中序遍历存进数组),然后建成平衡树。怎么样,是不是非常暴力啊,然而效率……所以替罪羊树是这样的: 每次操作以后检查操作路径,找到最高的满足 max(size(sonL),size(sonR))>α×size原创 2017-12-29 09:50:37 · 916 阅读 · 0 评论