题目链接:https://www.luogu.org/problemnew/show/P1533没人写$fhq\ treap$做法,那我就补一篇qwq看到这题第一时间想主席树,然后发现我还没学主席树,于是就写了平衡树做法(当然树状数组+二分的套路也是可以的,但是两个$log$的复杂度太优秀了就不写了 ...
分类:
其他好文 时间:
2018-12-09 14:04:45
阅读次数:
192
板子,全是板子 更新日志(从2018.11.19开始) 2018.12.02 : 更新了数据结构 扫描线 2018.11.22 : 更新了数据结构 平衡树 FHQ Treap 维护区间操作 2018.11.20 : 更新了数论 博弈论 nim游戏 2018.11.20 : 更新了数据结构 平衡树 F ...
分类:
编程语言 时间:
2018-12-03 00:57:37
阅读次数:
108
利用其他人其中考试的时间,终于学完了非旋转Treap,它与普通Treap的区别就是它不旋转废话。前置知识只有BST和可并堆。 BST看这个博客,解释的挺清楚的。https://www.cnblogs.com/jiangminghong/p/9999884.html 可并堆就是用很快的时间合并两个堆。 ...
分类:
其他好文 时间:
2018-11-27 22:19:25
阅读次数:
263
果断写了个 FHQ Treap…… 犯了一些奇怪的错误…… <! more 1. 一开始更新结点信息写错了。 2. 标记下推的时候忘了左右子节点不存在的情况。 代码: cpp include include include define ls(p) tree[p].lson define rs(p) ...
分类:
其他好文 时间:
2018-11-24 21:35:04
阅读次数:
168
- $fhqTreap$与$Treap$的差异 $fhqTreap$是$Treap$的非旋版本,可以实现一切$Treap$操作,及区间操作和可持久化 $fhqTreap$非旋关键在于分裂与合并$(Split \ \& \ Merge)$ - $Split$ 分裂相当于将一棵平衡树分为两棵平衡树,比如 ...
分类:
其他好文 时间:
2018-11-23 18:31:32
阅读次数:
139
浅谈$splay$: "https://www.cnblogs.com/AKMer/p/9979592.html" 浅谈$fhq$_$treap$: "https://www.cnblogs.com/AKMer/p/9981274.html" 题目传送门: "http://poj.org/probl ...
分类:
其他好文 时间:
2018-11-22 13:15:49
阅读次数:
144
Treap=BST+Heap,BST指的是二叉搜索树,而Heap指的是二叉堆,在此处我们使用的是小根堆. Treap上的每一个结点都维护五个值,一个是它本身的权值data,一个是用于维护堆的性质的权值key(他是随机赋上的一个值),那么我们为什么要给每一个点赋一个随机的key值呢?可以由玄学证明ke ...
分类:
其他好文 时间:
2018-11-18 14:11:54
阅读次数:
181
Treap,又称树堆,是一种通过堆性质来维持BST平衡的数据结构。具体体现在对于树上每一个点来说,既有BST维护的值,又有一个堆维护的随机生成的值。维护平衡性的办法是 根据堆维护的值的相对大小关系进行左旋和右旋这两种操作,在旋转的前后,依然满足BST性质 。 代码如下 ...
分类:
其他好文 时间:
2018-11-10 17:56:55
阅读次数:
194