数据结构
文章平均质量分 74
Fop_zz
这个作者很懒,什么都没留下…
展开
-
非递归式(zkw)线段树详解(一)
线段树,是在信息学各类比赛中经常出现的数据结构之一 普通的线段树大家应该都会,下面来介绍一种不需要递归的线段树zkw线段树 出自:《统计的力量》-张昆玮zkw线段树不同于普通线段树的地方在于:它采用堆结构,构造一颗满二叉树(也可以说是完全二叉树),而二叉树的最后一层则是各个节点。 注意:zkw线段树必须是点树,即完全闭区间 普通线段树中的修改需要去查询节点,并分为三类: 完全覆盖,在左原创 2017-02-17 15:13:33 · 4497 阅读 · 2 评论 -
左偏树/斜堆——可并堆详解
所谓可并堆,顾名思义,就是可以合并的堆。 最常用的堆应该大家都知道,优先队列二叉堆,是吧 可是如果要求把两个堆合并,要怎么做? 一个个数pop提取出来然后再重新构造一个堆? 显然这种方法太暴力了.. 有了可并堆,这个问题就可以被完美的解决了=V= 可并堆定义: 可并堆(Mergeable Heap)也是一种抽象数据类型,它除了支持优先队列的三个基本操作(Insert, Minimum原创 2017-03-02 13:46:45 · 1618 阅读 · 2 评论 -
平衡树学习笔记——旋转式treap
哇最近学平衡树,找资料看模板真的是看的死去活来的。。 花了一上午调了个模板。。 支持以下操作 : 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 求x的后继(后继定义为大于x,且最小的数)这个是。。洛谷的模板的描述 模板题: http原创 2017-03-03 13:48:12 · 620 阅读 · 0 评论 -
可持久化线段树
可持久化线段树,俗称主席树 我其实也不是很懂就来瞎口胡一通看看能不能自己卡死自己而已。。所谓可持久化,即支持询问之前的状态 比如经过了k次操作后,我们仍然能知道第i次(1<=i<=k) 次操作后的线段树是什么样子的 ”然而这只是主席树很小的一部分作用“——szb 蒟蒻瑟瑟发抖 那这要怎么做到呢?k次操作难道建k棵线段树么?显然空间爆炸啊 浪费的信息越少,一个算法越优 我们可以发现,线段原创 2017-04-05 13:47:12 · 814 阅读 · 1 评论 -
BZOJ 1782 [Usaco2010 Feb]slowdown 慢慢游 dfs序,树状数组
还是比较水的用dfs序来维护子树信息,我们让一个点归位后,使这个点所在点的子树加一,然后每次得出答案就行了#include #include #include #include #include #include #include #include #include #include #define ll long long#define maxn 20001原创 2017-08-07 17:34:57 · 401 阅读 · 0 评论 -
非旋Treap详解
(入门请按顺序一边做例题一边看下去,题目之间还有东西)非旋Treap 平衡树的一种个人认为是最好用的平衡树,第一支持可持久化,第二代码短,第三操作方法直观下面看平衡树基础的操作:您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入x数删除x数(若有多个相同的数,因只删除一个)查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名)查询排名...原创 2018-02-26 08:19:46 · 974 阅读 · 0 评论