题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 输入输 ...
分类:
其他好文 时间:
2018-01-13 13:01:38
阅读次数:
167
fhq treap+启发式合并,将小的合并到大的上面,复杂度NlogN。 最好的一点是通过dfs将一个子树内的元素转到另一个元素上。 By:大奕哥 ...
分类:
其他好文 时间:
2017-12-15 19:31:48
阅读次数:
196
题目背景 这是一道经典的Splay模板题——文艺平衡树。 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 输入输出格式 输入格式: 第一行为n,m n表示 ...
分类:
其他好文 时间:
2017-12-12 21:53:23
阅读次数:
113
当平衡树需要可持久化的时候,意味着我们需要访问以前的某个时间点的平衡树,就要保持以前的树形态不变,新建一个时间戳,构建一棵新的树。 如果用以前的旋转treap可能就不方便做到(又要打时间戳,又要新建节点,又要旋转),而且涉及到旋转,空间可能会承受不住,我们需要用到一种新的平衡树——fhq treap ...
分类:
其他好文 时间:
2017-12-04 15:59:45
阅读次数:
425
听说NOI系列考试不能用平板电视 所以手写了一个无旋Treap 有可能之后进化成fhq Treap 谁知道呢 bzoj3224 ...
分类:
其他好文 时间:
2017-11-28 21:49:32
阅读次数:
479
【题意】给定含有n个0的的数列。 1.区间加值 2.区间翻转 3.区间求最大值 【算法】平衡树(fhq-treap) 需要特别注意的是: 1.使0点对全局无影响并全程保持(例如求max,t[0].mx=-inf) 2.平衡树和线段树的上传区别在于要考虑本身这个点。 #include<cstdio> ...
分类:
其他好文 时间:
2017-11-24 22:49:35
阅读次数:
135
1500: [NOI2005]维修数列 Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有50 ...
分类:
其他好文 时间:
2017-11-22 21:58:20
阅读次数:
158
二次联通门 : LibreOJ #104. 普通平衡树 ...
分类:
其他好文 时间:
2017-08-25 10:49:06
阅读次数:
198
Description 给定一个长度为N的序列,每个序列的元素是一个整数。要支持以下三种操作: 1. 将[L,R]这个区间内的所有数加上V。 2. 将[L,R]这个区间翻转,比如1 2 3 4变成4 3 2 1。 3. 求[L,R]这个区间中的最大值。 最开始所有元素都是0。 Input 第一行两个 ...
分类:
其他好文 时间:
2017-07-31 01:07:04
阅读次数:
129
首先说一下, 这个东西可以搞一切bst,treap,splay所能搞的东西 pre 今天心血来潮, 想搞一搞平衡树, 先百度了一下平衡树,发现正宗的平衡树写法应该是在二叉查找树的基础上加什么左左左右右左右右的旋转之类的, 思路比较好理解,但是 代码量。。。。。。。。 一看就头大,, 然后,在洛谷翻题 ...
分类:
其他好文 时间:
2017-07-11 19:19:20
阅读次数:
193