
平衡树
nixinyis
这个作者很懒,什么都没留下…
展开
-
Treap 动态平衡树
(注:本文是笔者在学习Treap的时候的一点收获,并将一些基础知识记录下来)Treap定义:treap是一中动态平衡的BST,可以高效地处理插入和删除等,是一棵有键值和优先值的树。一些小笔记:(我刚学c++是很讨厌指针,但学到Treap时竟然可以接受了,O(∩_∩)O~~)初始定义struct node{ char *ch[2];//左右子树 int r;//随机的优先值原创 2017-02-09 11:47:22 · 403 阅读 · 0 评论 -
【BZOJ 1503】【NOI 2004】郁闷的出纳员【treap】
DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体原创 2017-03-15 22:23:04 · 254 阅读 · 0 评论 -
【BZOJ 2141】排队【分块+Treap】
Description排排坐,吃果果,生果甜嗦嗦,大家笑呵呵。你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和。红星幼儿园的小朋友们排起了长长地队伍,准备吃果果。不过因为小朋友们的身高有所区别,排成的队伍高低错乱,极不美观。设第i个小朋友的身高为hi,我们定义一个序列的杂乱程度为:满足ihj的(i,j)数量。幼儿园阿姨每次会选出两个小朋友,交换他们的位置,请你帮忙计算出每次交换后,原创 2017-02-28 16:45:22 · 338 阅读 · 0 评论 -
【BZOJ 3685】普通van Emde Boas树【treap】
Description设计数据结构支持: 1 x 若x不存在,插入x 2 x 若x存在,删除x 3 输出当前最小值,若不存在输出-1 4 输出当前最大值,若不存在输出-1 5 x 输出x的前驱,若不存在输出-1 6 x 输出x的后继,若不存在输出-1 7 x 若x存在,输出1,否则输出-1Input第一行给出n,m 表示出现数的范围和操作个数 接下来m行给出操作原创 2017-03-12 09:55:40 · 272 阅读 · 0 评论 -
【BZOJ 1251】序列终结者【裸splay】
Description给定一个长度为N的序列,每个序列的元素是一个整数(废话)。要支持以下三种操作: 1. 将[L,R]这个区间内的所有数加上V。 2. 将[L,R]这个区间翻转,比如1 2 3 4变成4 3 2 1。 3. 求[L,R]这个区间中的最大值。 最开始所有元素都是0。题解splay还有什么好说的呢。(本文纯粹为了保存一个最适合自己的代码)代码原创 2017-03-07 21:30:24 · 427 阅读 · 0 评论 -
【BZOJ 1058】【ZJOI 2007】报表统计【Treap】
Description在最开始的时候,有一个长度为N的整数序列,并且有以下三种操作: INSERT i k 在原数列的第i个元素后面添加一个新元素k; 如果原数列的第i个元素已经添加了若干元素,则添加在这些元素的最后(见下面的例子) MIN_GAP 查询相邻两个元素的之间差值(绝对值)的最小值 MIN_SORT_GAP 查询所有元素中最接近的两个元素的差值(绝对值) 例如一开始的序列为 5原创 2017-03-08 22:02:11 · 463 阅读 · 0 评论 -
【BZOJ 2733】【HNOI 2012】永无乡【treap启发式合并】
Description永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连 通的。现在有两种操作:B x y 表示在岛 x 与岛 y 之间修建一座新桥。Q x k 表示原创 2017-03-17 21:22:58 · 437 阅读 · 0 评论 -
【BZOJ 1588】【HNOI 2002】营业额统计(treap模板题)
Description营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况原创 2017-02-14 23:23:15 · 312 阅读 · 0 评论 -
一起来学习一个treap【POJ 3458】&【LA 5031】
这是我的treap代码储存。 welcome!POJ 3458链接:题目来源代码:#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>using namespace std;struct node{ node* ch[2]; int r,s,v,ans; node(int x,in原创 2017-02-11 21:06:17 · 253 阅读 · 0 评论 -
【POJ 1442】Black Box (treap树)
这是我自己写的第一道treap,虽然很简单,但依旧很激动。题目链接:POJ-1442题意:给了m个数a[1]……a[m],还有n个操作,每次输入一个u[i],求前u[i]个数中第i大的数。题解:1、裸treap数#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>using namespace std;s原创 2017-02-10 20:15:55 · 269 阅读 · 0 评论 -
【BZOJ 1208】【HNOI 2004】宠物收养所【treap】|【STL】
好久没写treap,手都生了。Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养原创 2017-04-03 10:19:05 · 331 阅读 · 0 评论