平衡树
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
bzoj1493 [NOI2007]项链工厂(splay)
DescriptionT公司是一家专门生产彩色珠子项链的公司,其生产的项链设计新颖、款式多样、价格适中,广受青年人的喜爱。最近T公司打算推出一款项链自助生产系统,使用该系统顾客可以自行设计心目中的美丽项链。该项链自助生产系统包括硬件系统与软件系统,软件系统与用户进行交互并控制硬件系统,硬件系统接受软件系统的命令生产指定的项链。该系统的硬件系统已经完成,而软件系统尚未开发,T公司的人找到了原创 2018-01-18 22:01:48 · 278 阅读 · 0 评论 -
bzoj3196 二逼平衡树(线段树+splay)
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数)Input第一行两个数 n,m 表示长度为n的有序序列和m个操作 第二行有n个数,表示有原创 2018-01-18 14:50:05 · 350 阅读 · 0 评论 -
bzoj2141 排队(线段树+splay)
题目链接分析: 之所以找到这道题是因为不想写dp了 看到网上的题解都是:分块+线段树,树状数组+线段树。。。立志自己想解法 一开始我在想,能不能用CDQ搞 但是CDQ版的动态逆序对好像是单点修改实际上逆序对的个数就是每个数字形成的逆序对之和 而每个数会和在ta之前比ta大的数以及在ta之后比ta大的数形成逆序对 a: 1 5 2 4 6 8ni: 0 2 1 1 0原创 2018-02-01 21:00:55 · 308 阅读 · 0 评论 -
luoguP2596 [ZJOI2006]书架(splay)
题目链接分析: 第一次看这道题的时候,按照数组中的顺序建立splay 但是一时脑抽,想不到怎么查找编号为S的书在哪个结点过了大约一周,又来看这道题,发现一周之前的我是那么的simple&naive在splay中,我们无论怎么splay||rotate,每个结点内包含的信息是不会变得,变动的只有结点之间的关系也就是说,我们只要用一个数组pos,记录一下每个编号在splay中位于哪个结点我们在删除结原创 2017-12-19 14:27:05 · 276 阅读 · 0 评论 -
Codeforces 452 E. Segments Removal
题目链接简介: 给出一个正整数序列,每次选择删除数字相同的一个连续区间(如果有多个就选择最靠左的),询问需要几次删除操作才能使序列为空分析: ZYXZYXZYX和澍神做的题,说是练数据结构,于是就做做看啦看到题目,第一个反应:unique?set? 但是我的STL好似是废掉的。。。那就用平衡树搞 我们可以采用缩点的方法,把一个区间缩成一个点,扔进splay中在每个维点中多维护一个信息mx:该原创 2017-12-18 19:50:50 · 299 阅读 · 0 评论 -
cv1743 反转卡片(splay)
题目描述 Description【dzy493941464|yywyzdzr原创】 小A将N张卡片整齐地排成一排,其中每张卡片上写了1~N的一个整数,每张卡片上的数各不相同。比如下图是N=5的一种情况:3 4 2 1 5接下来你需要按小A的要求反转卡片,使得左数第一张卡片上的数字是1。操作方法:令左数第一张卡片上的数是K,如果K=1则停止操作,否则将左数第1~K张卡片反转。第一次(K=3)反原创 2017-11-27 20:01:51 · 274 阅读 · 0 评论 -
bzoj 1251 序列终结者(splay)
Description网上有许多题,就是给定一个序列,要你支持几种操作:A、B、C、D。一看另一道题,又是一个序列 要支持几种操作:D、C、B、A。尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个“库”可以依靠,没有什么其他的意思。这道题目 就叫序列终结者吧。 【问题描述】 给定一个长度为N的序列,每个序列原创 2017-11-27 19:20:55 · 232 阅读 · 0 评论 -
bzoj2209 [Jsoi2011]括号序列(splay)
DescriptionInput输入数据的第一行包含两个整数N和Q,分别表示括号序列的长度,以及操作的个数。 第二行包含一个长度为N的括号序列。 接下来Q行,每行三个整数t、x和y,分别表示操作的类型、操作的开始位置和操作的结 束位置,输入数据保证x不小于y。其中t=0表示询问操作、t=1表示反转操作、t=2表示翻转操 作。Output对于每一个询问操作,输出一行,表示将括号序列的该子序列修改原创 2017-11-26 20:28:16 · 352 阅读 · 0 评论 -
bzoj3223[Tyvj 1729] 文艺平衡树(splay模板题:区间翻转)
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 Input第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2……n-1,n) m表示翻转操作次数接下来m行每行两个数[l,r] 数据保证 1<=l<=r<=n Output原创 2017-11-25 16:45:47 · 711 阅读 · 0 评论 -
bzoj1058 [ZJOI2007]报表统计
Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作。今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一。经过仔细观察,小Q发现统计一张报表实际上是维护一个可能为负数的整数数列,并且进行一些查询操作。在最开始的时候,有一个长度为N的整数序列,并且有以下三种操作: INSERT i k 在原数列的第i个元素后面添加一个新元素k; 如果原数列的第i个元素已经添原创 2017-12-06 17:35:06 · 299 阅读 · 0 评论 -
luogu2286宠物收养场
题目描述凡凡开了一间宠物收养场。收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养场的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养场总是会有两种情况发生:被遗弃的宠物过多或者是想要原创 2017-05-31 07:40:03 · 292 阅读 · 0 评论 -
bzoj1503 郁闷的出纳员
DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体原创 2017-05-31 07:27:40 · 249 阅读 · 0 评论 -
splay(普通平衡树)
指针模板:这里写代码片#include<cstdio>#include<cstring>#include<iostream>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;const int INF=1e9;const int MAX_Q = 1e5 + 10;int n,top=0;s原创 2017-05-31 07:15:52 · 404 阅读 · 0 评论 -
平衡树splay
一种很牛~的算法,超级烦琐 给我的感觉就是:背模板才是王道~ 所以下面就献上一道裸题,方便模板的练习bzoj3224 Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(原创 2017-03-12 12:27:38 · 363 阅读 · 0 评论 -
翔哥的hu测 T3. 刁难老师(平衡树+线段树)
版权属于ZYXZYXZYX,想要引用此题(包括题面)的朋友请联系博主 题目来源:[2016国家集训队互测] 基础排序算法练习题(金策)原题提交地址分析: 防AK毒瘤题啊。。。1. 预备技能——消逆序对排序:O(q(m+n²)log n)对于一个序列,找到其中一个位置iii满足a[i]>a[i+1]a[i]>a[i+1]a[i]>a[i+1],交换...原创 2018-03-10 21:50:48 · 377 阅读 · 0 评论