左偏树是可合并堆的一种实现方式,可合并堆还有其他实现方式比如斜堆,然而我这种蒟蒻只会写左偏树。 模板里的左偏树为大根堆,支持合并,查询堆顶和弹出堆顶操作,对于已经删除的位置,查询将返回-1,为了确保弹出的正常进行,模板里使用的并查集没有使用路径压缩,因此常数可能会比较大。 1 #include<st ...
分类:
其他好文 时间:
2017-04-14 22:02:33
阅读次数:
179
Time Limit: 10 Sec Memory Limit: 162 MB Description 斜堆(skew heap)是一种常用的数据结构。它也是二叉树,且满足与二叉堆相同的堆性质:每个非根结点的值都比它父亲大。因此在整棵斜堆中,根的值最小。但斜堆不必是平衡的,每个结点的左右儿子的大小关 ...
分类:
其他好文 时间:
2017-04-04 21:28:35
阅读次数:
140
Description 斜堆(skew heap)是一种常用的数据结构。它也是二叉树,且满足与二叉堆相同的堆性质:每个非根结点的值都比它父亲大。因此在整棵斜堆中,根的值最小。但斜堆不必是平衡的,每个结点的左右儿子的大小关系也没有任何规定。在本题中,斜堆中各个元素的值均不相同。 在斜堆H中插入新元素X ...
分类:
其他好文 时间:
2017-02-26 18:52:39
阅读次数:
181
1078: [SCOI2008]斜堆 Description 斜堆(skew heap)是一种常用的数据结构。它也是二叉树,且满足与二叉堆相同的堆性质:每个非根结点的值都比它父亲大。因此在整棵斜堆中,根的值最小。但斜堆不必是平衡的,每个结点的左右儿子的大小关系也没有任何规定。在本题中,斜堆中各个元素 ...
分类:
其他好文 时间:
2016-12-25 11:20:54
阅读次数:
278
高级数据结构 一、左偏树&斜堆 合并,插入,删除 打标记 二、线段树 建树,修改,查询,lazy标记 主席树,可持久化线段树 //zkw线段树 例:bzoj1146 bzoj2653 三、平衡树 旋转:splay treap 笛卡尔树 后缀平衡树 重建:替罪羊树 四、树套树 线段树套线段树 线段树套 ...
分类:
其他好文 时间:
2016-12-17 13:49:05
阅读次数:
161
感谢MATO大神的博客 http://www.cppblog.com/MatoNo1/archive/2013/03/03/192131.html 注意细节。 ...
分类:
其他好文 时间:
2016-09-16 15:28:51
阅读次数:
177
bzoj1455罗马游戏 题意: 维护数据结构支持合并和弹出最小值。n≤1000000,m≤100000 题解: 可并堆,注意本题合并时要判断两个节点是否在同一个堆中。本弱写了左偏树和斜堆,发现斜堆比左偏树快,不知道为什么,求神犇解答。 代码: 20160810 ...
分类:
其他好文 时间:
2016-08-14 09:03:26
阅读次数:
143
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1078每一次进入的点一定是一个极左节点,然后将它所处在的整棵树左右翻转。加上一些情况的处理。#include#include#include#include#include#include#inc...
分类:
其他好文 时间:
2015-12-11 13:05:51
阅读次数:
137
一、斜堆斜堆是一种可以合并的堆节点信息:struct Node { int v; Node *ch[2];};主要利用merge函数Node *merge(Node *x, Node *y) { if(!x) return y; if(!y) return x; if(...
分类:
其他好文 时间:
2015-11-25 23:22:07
阅读次数:
334