
平衡树
bestFy
世界上最最最渣的oier.
展开
-
poj2892 Tunnel Warfare
题面在这里 题目大意: 有nn个物品排成一行。三种操作:DD xx 表示将第xx个物品摧毁;RR 表示将上一个物品回复;QQ xx 表示查询xx所在连通块的个数。做法: 平衡树中保存摧毁的物品编号。 查询时只需查询xx的前驱prepre后继nxtnxt,然后输出nxt−pre−1nxt-pre-1即可。/****************************************原创 2017-12-09 00:27:01 · 208 阅读 · 0 评论 -
luogu4036 [JSOI2008]火星人(splay+二分hash)
题面在这里题意给出一个字符串,要求兹瓷动态插入/修改字符,询问x,y开头的后缀的lcp。保证字符串任意时刻长度 ≤105≤105\le10^5 。做法splay维护区间hash值。查询时二分+hash即可。代码=> 不得不吐槽bzoj的评测机速度 -.- 果断地去luogu上提交。=> 注意splay的一些细节。以及二分的边界r注意取min,...原创 2018-04-27 18:12:32 · 297 阅读 · 0 评论 -
bzoj1112: [POI2008]砖块Klo(splay)
题面在这里做法枚举每长度为 kkk 的段寻找中位数即可。splay维护。代码=> 主要是想说这一点,由于计算的必要,相同的数不能合并到一个节点,否则之后调用 sum[ch[x][0]]/sum[ch[x][1]] 的时候会漏算和节点 xxx 相同的数。#include<bits/stdc++.h>#define rep(i,x,y) for (int...原创 2018-04-27 14:08:40 · 848 阅读 · 0 评论 -
poj3481 Double Queue(treap)
题面在这里 (vjudge怎么这么不靠谱啊。。以后还是直接用poj算了) (注册了一个号写了一道题Submissions:14===)呐,进入正题。题意:三个操作: 1. 插入一个编号为x,优先级为y的人 2. 返回优先级最高的人的编号 3. 返回优先级最低的人的编号做法:treap模板。(这题我好像也写过splay)大致的想法就是,tree+heap,对原创 2018-01-01 16:05:42 · 372 阅读 · 1 评论 -
poj3481 Double Queue(splay)
题面在这里 题目大意: 有一些人,每个人有一个名字和优先级。初始时队列为空。现在有33种操作:插入一个人;弹出优先级最大的那个人;弹出优先级最小的那个人。做法: 平衡树练习。直接上代码。/************************************************************* Problem: poj 3481 Double Queue Use原创 2017-12-09 18:00:13 · 352 阅读 · 0 评论 -
bzoj3196: Tyvj 1730 二逼平衡树
题面在这里我去树套树真**丧心病狂… 神tm6KB代码,代码总长233行也是醉了。 做法: 额没什么好说的就是树套树的裸题。。自行体会。/************************************************************* Problem: bzoj 3196 Tyvj 1730 二逼平衡树 User: fengyuan Lan原创 2017-12-07 21:01:49 · 274 阅读 · 0 评论 -
bzoj1208: [HNOI2004]宠物收养所
题面在这里splay练习,按题意模拟着做,每次找前驱后继即可。代码比较丑= = 而且里面有一些不必要的东西比如sz[]这个数组是不需要的。ps. wzp是一超级无敌巨佬名字,大家可以尽情地%他..../************************************************************* Problem: bzoj 1208 [HNOI20原创 2017-11-24 20:28:41 · 285 阅读 · 0 评论 -
bzoj1588: [HNOI2002]营业额统计
题面在这里splay练习,查找前驱后继即可。/************************************************************* Problem: bzoj 1588 [HNOI2002]营业额统计 User: fengyuan Language: C++ Result: Accepted Time: 176 ms Memory:原创 2017-11-22 22:09:23 · 248 阅读 · 0 评论 -
poj2985 The k-th Largest Group
题面在这里 题目大意: 有n个集合,每个集合有一个互不相同的元素。现在有两种操作:合并xx, yy所在的集合;询问第kk大的集合元素个数。做法: 并查集+平衡树。平衡树里维护每个集合的元素个数。/************************************************************* Problem: poj 2985 The k-th Largest原创 2017-12-09 15:53:33 · 244 阅读 · 0 评论 -
loj#2212. 「SCOI2014」方伯伯的 OJ(splay)
题面在这里做法神奇的splay…..。>w<放到第一名/最后一名显然可以转化成,删去后在头/尾部插入。可以参考noip2017 D2T3的做法,用“离散排名”代替实际排名,也即用一个非连续的数列代替1~n。设置一个 mi/mx ,放到第一名就把它的排名设为 --mi ,放到最后一名就设为 ++mx 。其次,用map保存编号为x的人的离散排名,用splay以排名为...原创 2018-04-28 13:28:01 · 343 阅读 · 0 评论