题干:splay模板,要求维护区间反转。 splay是一种码量小于treap,但支持排名,前驱后继等treap可求的东西,也支持区间反转的平衡树。 但是有两个坏处: 1.splay常数远远大于treap以及stl中的set。 2.没有可持久化splay,但有可持久化treap。 下面是代码: 1.p ...
分类:
其他好文 时间:
2018-09-05 18:06:40
阅读次数:
242
迭代器中序遍历整棵树,++或 为前驱后继 可重复插入,查找,排名( using namespace std; template class splay_tree_iterator; template, typename _Equ = equal_to class splay_tree { publi ...
分类:
其他好文 时间:
2018-07-21 14:35:30
阅读次数:
110
这东西我还是有点会玩的啊。。 邻值查找这东西不就是维护个前驱后继嘛。。 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using ...
分类:
其他好文 时间:
2018-07-02 11:04:47
阅读次数:
147
构建虚树,每次在set中维护其前驱,后继,更新 ...
分类:
其他好文 时间:
2018-07-02 10:55:11
阅读次数:
135
题意:给你一个序列,让你找一个k,倘若把大于等于k的元素都标记为不可用,那么剩下的所有元素形成的段的长度相同,并且使得段的数量尽量大。如果有多解,输出k尽量小的。 把元素从大到小排序插回原位置,用一个set维护前驱后继,相当于删除一个原有的段,然后将这个段切成两半,产生两个新的段。维护这次操作后所有 ...
分类:
其他好文 时间:
2018-05-18 14:08:05
阅读次数:
151
二叉树前驱后继概念及删除操作 前驱和后继(中序遍历) 节点的前驱:是该节点的左子树中的最大节点。 节点的后继:是该节点的右子树中的最小节点。 理解图: 查找前驱节点的代码 /* * 找结点(x)的前驱结点。即,查找"二叉树中数据值小于该结点"的"最大结点"。 */ public BSTNode<T> ...
分类:
其他好文 时间:
2018-03-25 11:56:49
阅读次数:
253
题目传送门 平衡树的题。 因为题目给出条件(其实自己也知道):同一时间呆在收养所中的,要么全是宠物,要么全是领养者,这些宠物和领养者的个数不会超过10000个。 所以只要维护一颗平衡树,它的里面要不全是人,要不全是宠物。 找到人的前驱后继比较。 code: ...
分类:
其他好文 时间:
2018-03-17 21:41:08
阅读次数:
220
图描述的是一些个体之间的关系。与线性表之间和二叉树之间不同的是,这些个体之间即不是前驱后继的顺序关系,也不是祖先后代的层次关系,而是错综复杂的网状关系。在图中一个比较重要的算法就是,小编接下来将要介绍的DFS算法。下面通过一个具体的例子来介绍DFS算法——用DFS算法求联通块。问题描述如下:油田(OilDepositsUVa572)输入一个m行n列的字符矩阵,统计字符的“@”组成多少个八联块。如果
分类:
其他好文 时间:
2018-03-17 20:09:45
阅读次数:
178
1. 排序二叉树、最优二叉树、线索二叉树、平衡二叉树等是二叉树的特殊形式,分别有各自的用途,排序二叉树用于快速查找、最优二叉树用于无损压缩编码、线索二叉树通过保存结点的前驱后继信息以方便遍历、平衡二叉树通过改进排序二叉树提高了其整体查找效率。 2.对于最优二叉树用于压缩编码,非常不解树是如何用于编码 ...
分类:
其他好文 时间:
2018-02-27 01:02:41
阅读次数:
163
我们知道满二叉树只是一种特殊的二叉树,大部分二叉树的结点都是不完全存在左右孩子的,即很多指针域没有被充分地利用。另一方面我们在对一棵二叉树做某种次序遍历的时候,得到一串字符序列,遍历过后,我们可以知道结点之间的前驱后继关系,也就是说,我们可以很清楚地知道任意一个结点,它的前驱和后继是哪一个。可是这是 ...
分类:
其他好文 时间:
2018-02-26 11:14:49
阅读次数:
218