
Treap
linkfqy
A link to FQY.
展开
-
Treap-总结
【前(fei)言(hua)】对于BST,相信大家都很熟悉了。BST系列的数据结构功能都比较强大,但是朴素BST的效率实在不敢恭维,非常容易被卡。今天介绍的Treap是BST的加强版,可以有效防止被卡。【Treap的性质】BST为什么这么容易卡呢?究其原因,其实是BST不太平衡导致的。所谓平衡,就是要让BST的左右两棵子树深度尽量相同,这样在操作时就不会往下查找过多的次数。 于是,我们可以在Tree原创 2017-03-05 15:45:22 · 1681 阅读 · 1 评论 -
【模板】基于旋转的Treap
Treap作为一种典型的平衡树, 能实现插入、删除、查找等操作 初学者必学!关于Treap,戳这里写得较为简洁:原创 2017-06-02 20:22:54 · 339 阅读 · 1 评论 -
【Treap/非旋转Treap】BZOJ1503 [NOI2004]郁闷的出纳员
郁闷的出纳员 非旋转Treap的经典题啊…… 题面如下: DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了原创 2017-04-20 20:04:40 · 826 阅读 · 1 评论 -
【Treap/非旋转Treap】BZOJ3224 [Tyvj1728]普通平衡树
BZOJ 3224 平衡树裸题…… 写了Treap/非旋转Treap两个版本。 题面如下:Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数原创 2017-04-18 20:05:24 · 959 阅读 · 2 评论 -
【楼天城男人八题】【树分治|Treap+启发式合并】POJ1741 Tree
题面在这里待我先膜拜一下楼教主……首先这题是很明显的树分治 想说点什么却发现已经没什么好说了然后我们来看另一种解法:平衡树乱搞 这里用的是Treap实现对于每个节点,用Treap记录该子树每个节点到根(默认为1)的距离 那么如何统计答案? 对于兄弟子树,他们之中的任意节点间都可统计方案数,而且不会重复 其实统计方案数就是询问某Treap中key比x小的个数 统计两棵Treap之间的方案数原创 2017-07-09 20:05:21 · 2689 阅读 · 2 评论 -
【线段树,Treap】CodeChef COT5 Count on a Treap
题面在这里这道题很考验对Treap的理解考虑问题时,先把Treap转换成LNR序列,那么就只用考虑节点的权值了 首先发现,Treap中一个节点的father必定是: 向两边找第一个权值比自己大的点 那么显然一个节点的深度可以由 向两边扩展的最长上升序列的长度 得到 我们用线段树维护这个值 具体做法是离线得到所有键值,维护某区间内的最长上升序列的长度 区间询问一发就可以得到一个点的深度原创 2017-08-23 20:47:28 · 1315 阅读 · 0 评论