目录
伸展树的介绍
伸展树的C实现
1 节点定义
2 旋转
3 伸展树的伸展
4 搜索
4 伸展树的插入和删除
全部代码和参考资料1. 伸展树的介绍伸展树(splay tree)是一种搜索二叉树,它能在O(log n)O(log\ n)内完成插入、查找和删除操作。
(1)伸展树满足搜索二叉树的性质,左子节点小于根节点,右子节点大于等于根节点。
(2)伸展树独有特点:当某个节点被访问时,伸展树会通...
分类:
其他好文 时间:
2015-04-30 12:38:57
阅读次数:
187
原题链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18902伸展树的区间翻转剪切。。。如下: 1 #include 2 #include 3 #include 4 #include 5 const int Ma...
分类:
其他好文 时间:
2015-04-25 15:08:07
阅读次数:
141
题目链接:BZOJ - 1014题目分析求两个串的 LCP ,一种常见的方法就是 二分+Hash,对于一个二分的长度 l,如果两个串的长度为 l 的前缀的Hash相等,就认为他们相等。这里有修改字符和插入字符的操作,所以用 Splay 来维护串的 Hash 值。一个节点的值就是它的子树表示的字串的 ...
分类:
Web程序 时间:
2015-04-24 22:34:58
阅读次数:
250
原题链接:http://www.tyvj.cn/p/1729这道题以前用c语言写的splay tree水过了。。现在接触了c++重写一遍。。。只涉及区间翻转,由于没有删除操作故不带垃圾回收,具体如下: 1 #include 2 #include 3 #include 4 #include ...
分类:
其他好文 时间:
2015-04-24 20:59:39
阅读次数:
225
题目大意不多说了貌似每个苦逼的acmer都要做一下这个splay树的模版题目吧还是有很多操作的,估计够以后当模版了。。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace ...
分类:
其他好文 时间:
2015-04-22 01:49:43
阅读次数:
228
题目链接:BZOJ - 2049题目分析LCT的基本模型,包括 Link ,Cut 操作和判断两个点是否在同一棵树内。Link(x, y) : Make_Root(x); Splay(x); Father[x] = y;Cut(x, y) : Make_Root(x); Access(y); 断掉 ...
分类:
其他好文 时间:
2015-04-21 22:26:35
阅读次数:
197
题解:
傻题随便上数据结构都能搞过。
可并堆或者启发式合并splay都可以。
考试时状态太差一个裸模板启发式合并splay调了3h最后还爆零了Qwq、
200行!!!!!!
然后可并堆又快又短,细节又少(然后特么也全都是模板内容,一点非模板代码都没有……),完虐启发式合并。
另外这道题可以用 f(i,j)f(i,j) 表示 从点 ii 到其第 2j2^j 个父亲需要的最小战斗力,这种做...
分类:
其他好文 时间:
2015-04-21 16:15:00
阅读次数:
226
题解:
随便来一种数据结构就好啦。
这里写的是平衡树(一眼直接想到,而且发现很水)
注意。。
呃或许也不用太注意。
就是那个Insert操作要你干什么千万要看明白……
代码:
#include
#include
#include
#include
#define N 101000
#define ls son[x][0]
#define rs son[x][1]...
分类:
其他好文 时间:
2015-04-21 11:22:06
阅读次数:
150
实现功能:同splay区间反转 1(基于BZOJ3223 文艺平衡树)这次改用了一个全新的模板(HansBug:琢磨了我大半天啊有木有),大大简化了程序,同时对于splay的功能也有所完善这里面没有像一般二叉排序树那样子用一个参量进行排序,而是直接以中序遍历来构建了一个普通的二叉树(当然也可以把每个...
分类:
编程语言 时间:
2015-04-20 22:13:13
阅读次数:
175