平衡树
luoyuef
这个作者很懒,什么都没留下…
展开
-
[HNOI2004]宠物收养场
凡凡开了一间宠物收养场。收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养场的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养场总是会有两种情况发生:被遗弃的宠物过多或者是想要收养原创 2017-11-17 10:26:23 · 167 阅读 · 0 评论 -
[SCOI2014]方伯伯的OJ
数据范围n<=108,m<=105n<=108,m<=105n222颗平衡树,一棵以编号中序遍历,一棵以排名中序遍历,每个节点开pairpairpair记录下这排名和编号。 然后对于每个操作 直接按照题意去修改就好了。把连续的区间缩成点用的时候再拆开。 注意以编号中序遍历中 pairpairpair 的排名并不是真实排名而是相对排名,需要到另一棵树中再查找。 fi...原创 2018-04-17 15:53:08 · 358 阅读 · 0 评论 -
BZOJ 2456 and 洛谷总统选举
给出 nnn 个数,其中有一个数出现过>0.5∗n+1>0.5∗n+1>0.5*n+1 次 输出这个数。 n<=5∗105n<=5∗105n1MB1MB1MB 时限0.1s0.1s0.1s思考这个数的性质, 这样的数有且只有一个,其他数的总和加起来没有这个数多。 设这个数为p 所以sump−sumother>0sump−sumother>0sum p...原创 2018-04-16 16:08:00 · 235 阅读 · 0 评论 -
[BJOI2017]喷式水战改
= = 虽然这题并不太难调 可我还是调了一年呀。。 一个区间DP+平衡树维护。因为空间不太够,所以点合并起来(就像NOIP2017列队一样)。 然后用的时候拆开,最多2e5个点。考虑状态f[l][r][i][j]f[l][r][i][j]f[l][r][i][j]为l-r区间内用了从i到j的方案的最大价值。转移显然。。然后就在平衡树上调就好了= =然后你要注意update时不要写反,拆点时...原创 2018-04-08 17:12:00 · 390 阅读 · 0 评论 -
[ZJOI2006]书架
题目 平衡树裸题。。按层数随便赋个值表示相对关系,然后查找排名就好了。(我依然调一年)…然而这题线段树做法比较有趣。 空间开足够对于每次top和bot操作要新开空间。数组记录编号为s的书在线段树上的位置。 线段树上维护那段区间有没有书。 然后对于top和bot操作。。二分一直跳到没有书的第一个为0的点。对于ins操作。交换相邻点。 ask查询区间和(前缀)。 query二分一直找到原创 2018-01-18 15:09:01 · 241 阅读 · 0 评论 -
平衡树:treap学习笔记(2)
上一次写了旋转的treap(代码非常简单。 这次我们来写无旋的treap。这个treap没有旋转操作。 有两个基本操作:合并、分裂。 插入和删除时都使用到了这两个操作,感觉很妙呀qaq。 具体的解释详见:https://wenku.baidu.com/view/09fbf8147c1cfad6195fa7f0.html; 还有zcy的代码:https://www.cnblogs.com/z原创 2017-11-20 11:33:48 · 228 阅读 · 0 评论 -
平衡树:treap学习笔记(1)
平衡树是基于二叉查找树的一个数据结构。他的左右子树高度差不超过1。 下面我先扔出我treap的奇怪的代码,然后明天再来更新qaq。#include<bits/stdc++.h>using namespace std;const int MAXN=2e5+5;int my_rand(){ static int seed=623; return seed=int(seed*48271原创 2017-11-16 21:10:20 · 247 阅读 · 0 评论 -
郁闷的出纳员(treap)
OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。 工资的频繁调整很让员工反感,尤其是集体扣除工资的时候,一原创 2017-11-17 08:19:08 · 370 阅读 · 0 评论 -
平衡树:treap学习笔记(3)
在(2)中我们写了无旋treap。然后我就找到了那道题qaq。文艺平衡树 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 输入输出格式 输入格式: 第一行为n,m n表示初始序列有n个数,由1-n组成 m表示翻转操作次数。 输出格式: 输出一原创 2017-11-20 16:43:34 · 245 阅读 · 0 评论 -
[HNOI2012]永无乡
永无乡包含 nnn 座岛,编号从 111 到 nnn ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 nnn 座岛排名,名次用 111 到 nnn 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 aaa 出发经过若干座(含 000 座)桥可以 到达岛 bbb ,则称岛 aaa 和岛 bbb 是连通的。现在有两种操作:BBB xxx yyy 表示在岛 xx...原创 2018-04-18 15:21:15 · 453 阅读 · 0 评论