数据结构
zerollt
noi接近退役?
展开
-
[JSOI2008]最大数maxnumber 线段树
1012: [JSOI2008]最大数maxnumberDescription 现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加 上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数原创 2017-12-04 13:55:47 · 178 阅读 · 0 评论 -
[SDOI2014]旅行 【树链剖分+主席树】
题目描述最喜欢这种细节少少的组合型问题了,感觉被树套树虐过之后其他数据结构都简单了 这题就是简单的树链剖分+主席树,好像只要会就不是很容易写错 信仰每一种宗教的单独建一颗线段树就好了代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#...原创 2018-03-09 20:51:06 · 168 阅读 · 0 评论 -
[SDOI2011]染色 【树链剖分】
[SDOI2011]染色线段树部分还要带两个成员lc(该区间最左边的结点颜色)和rc(该区间最右边的结点颜色) ,其他应该都是裸的树链剖分我被卡死是在询问的时候,最后top[u]==top[v]的时候,要判断两边的color和之前的两条链的顶端是不是一样(我把之前两条链的顶端记反了)代码#include#include#include#include#include#原创 2018-02-07 19:14:58 · 164 阅读 · 0 评论 -
[SHOI2009]Booking 会场预约 【Treap】
[SHOI2009]Booking 会场预约写题半小时,调试一万年系列Treap里面包含各种神奇的成分,然后在找重合区间的时候顺便删掉,要不会TLE代码#include#include#include#include#includeusing namespace std;struct node{ node* ch[2]; int low, high, s,原创 2018-01-26 21:30:58 · 133 阅读 · 0 评论 -
[ZJOI2008]树的统计 【树链剖分】
[ZJOI2008]树的统计感觉树剖是我打过要调最少的数据结构了询问就一直顺着链走就好代码#include#include#include#include#include#define ll long long #define lo o#define ro o#define mid ((l+r)>>1)using namespace std;const ll原创 2018-02-01 20:48:39 · 147 阅读 · 0 评论 -
[HAOI2015]树上操作 【树链剖分】
[HAOI2015]树上操作卡我的居然是线段树,orz,尝试了各种lazy标记终于A了这道题好像比树链剖分的模板题还简单其实感觉树剖并不难理解,核心就是两次dfs,第一次分轻重链,第二次处理各种与编号有关的东西,处理完之后以某一结点u为根的子树就是id[u]~id[u]+siz[u]-1的节点,u到这条链的顶点的节点就是id[top[u]]~id[u]这些点,所以就很好处理了对于本原创 2018-02-01 17:53:28 · 137 阅读 · 0 评论 -
[HNOI2012]永无乡 SBT+启发式合并
题目描述 题目我也不知道启发式合并到底是什么东西 好吧,启发式合并就是把小的集合往大的集合合并,学并查集的时候不是有把小树根的父亲设为大树根的操作吗,这大概就是启发式合并的一个典例对于这道题,我的做法是把小SBT的所有结点从小到大全部加入到大SBT中(本来打了个Treap,懒得旋转了,就改成了SBT,还好没有极限数据卡我),大概把并查集的操作省略了代码#include<iostream>#in原创 2017-12-17 12:16:34 · 177 阅读 · 0 评论 -
P3391 【模板】文艺平衡树(Splay)
题目背景这是一道经典的Splay模板题——文艺平衡树。题目描述您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1输入输出格式输入格式: 第一行为n,m n表示初始序列有n个数,这个序列依次是 (1,2,⋯n−1,n) m表示翻转操作次数接下来m行每行两个数 [原创 2017-11-27 20:11:26 · 309 阅读 · 0 评论 -
【模板】可持久化数组(可持久化线段树/平衡树)
题目描述 题目模板模板 线段与它的历史版本 新的版本只要在历史版本上修改一条路就好了 继续打指针 指针真的好用 (题目说可以是可持续化的线段树/平衡树,我在考虑要不要学着写一波可持久化的平衡树) 代码(可持久化线段树)#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<algor原创 2017-12-05 13:53:50 · 281 阅读 · 0 评论 -
[CQOI2015]任务查询系统 主席树
题目描述感觉再写数据结构我要折寿了以时间为版本,优先级为价值建立主席树 对于一个任务,我们只要在任务开始的时候把它加进去,再在任务结束之后把它删除,其他时候只要继承上一个时间段的就好了,所以应该是很好实现的,差分然后求前缀和就好跑得很慢内存很大的代码(懒得优化了)#include<iostream>#include<algorithm>#include<cstdio>#include<cst原创 2017-12-06 18:14:41 · 187 阅读 · 0 评论 -
【模板】可持久化线段树 1(主席树)
题目背景这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树。同时请注意常数优化题目描述如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个正整数,表示这个序列各项的数字。 接下来M行每行包含三个整数 l,r,k , 表示查询区间[l,r]内的第k原创 2017-12-04 20:12:02 · 221 阅读 · 0 评论 -
【模板】普通平衡树 Treap
题目描述您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1.插入x数 2.删除x数(若有多个相同的数,因只删除一个) 3.查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 4.查询排名为x的数 5.求x的前驱(前驱定义为小于x,且最大的数) 6.求x的后继(后继定义为大于x,且最小的数)输入输出格式输入格式: 第一行原创 2017-11-24 18:23:17 · 270 阅读 · 0 评论 -
[ZJOI2006]书架 Treap
题目描述小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上原创 2017-12-02 14:24:33 · 261 阅读 · 0 评论 -
郁闷的出纳员 Treap
题目描述OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体扣除工资的时候原创 2017-11-30 13:06:42 · 224 阅读 · 0 评论 -
[HNOI2004]宠物收养场 Treap
题目描述凡凡开了一间宠物收养场。收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养场的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养场总是会有两种情况发生:被遗弃的宠物过多或者是想要原创 2017-11-26 14:14:40 · 224 阅读 · 0 评论 -
NOIP2017 列队 线段树(指针版)+vector
题目描述Sylvia 是一个热爱学习的女♂孩子。前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。Sylvia 所在的方阵中有 n×m名学生,方阵的行数为 n,列数为 m。为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 n×m 编上了号码(参见后面的样例)。即:初始时,第 i 行第 j 列 的学生的编号是(i−1)×m+j。然而在练习方原创 2017-12-01 19:51:25 · 415 阅读 · 0 评论 -
【模板】二逼平衡树(树套树)【树状数组套线段树】
题目描述被各种毒瘤线段树虐过后突然感觉这道卡了我一万年的树套树很水 (就一道模板题,不想讲了) 代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#include<cstring>using namespace std;c...原创 2018-04-15 18:01:14 · 479 阅读 · 1 评论