随笔分类 -  数据结构-------平衡树

摘要:$ \color{ 0066ff}{ 题目描述 }$ 很久很久以前,$DOS3.x$ 的程序员们开始对 $EDLIN$ 感到厌倦。于是,人们开始纷纷改用自己写的文本编辑器⋯⋯ 多年之后,出于偶然的机会,小明找到了当时的一个编辑软件。进行了一些简单的测试后,小明惊奇地发现:那个软件每秒能够进行上万次编 阅读全文
posted @ 2019-02-28 14:21 olinr 阅读(235) 评论(0) 推荐(0)
摘要:$ \color{ 0066ff}{ 题目描述 }$ 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文件中的空格) $\color{ 0066ff}{输入格式}$ 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 阅读全文
posted @ 2019-02-27 21:32 olinr 阅读(176) 评论(0) 推荐(0)
摘要:$ \color{ 0066ff}{ 题目描述 }$ 永无乡包含 $n$ 座岛,编号从 $1$ 到 $n$ ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 $n$ 座岛排名,名次用 $1$ 到 $n$ 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 $a$ 出发经 阅读全文
posted @ 2019-02-26 07:21 olinr 阅读(181) 评论(0) 推荐(0)
摘要:RBT 上一篇: "平衡树学习笔记(5) SBT" RBT是。。。是一棵恐怖的树 有多恐怖? 平衡树中最快的♂ 不到200ms的优势,连权值线段树都无法匹敌 但是,通过大量百度,发现RBT的代码都是从STL扒的qwq 蒟蒻根本无法研究透彻 关键时候,崔大钊(100多行,使我更加透彻QAQ 感激不尽( 阅读全文
posted @ 2018-11-29 19:29 olinr 阅读(411) 评论(0) 推荐(0)
摘要:SBT 上一篇: "平衡树学习笔记(4) 替罪羊树" 所谓SBT,就是Size Balanced Tree 它的速度很快,完全碾爆Treap,Splay等平衡树,而且代码简洁易懂 尤其是插入节点多的时候,比其它树快多了(~~不考虑毒瘤红黑树~~) 尤其是它的平衡操作maintain,均摊$O(1)$ 阅读全文
posted @ 2018-11-27 21:46 olinr 阅读(428) 评论(0) 推荐(0)
摘要:替罪羊树 上一篇: "平衡树学习笔记(3) Splay" 替罪羊树可以说是最暴力的平衡树 但却跑的很快 有多暴力? 不是一条链影响复杂度吗? 暴力给你拍到一个vector里去(没错,整棵树暴力拍扁) 再重新建树,建出的树像线段树那样二分建来保证平衡 可谓是要多暴力有多暴力 在树套树上也有一些优势 $ 阅读全文
posted @ 2018-11-24 19:53 olinr 阅读(316) 评论(0) 推荐(0)
摘要:Splay 上一篇: "平衡树学习笔记(2) Treap" Splay是一个实用而且灵活性很强的平衡树 效率上也比较客观,但是一定要一次性写对 debug可能不是那么容易 Splay作为平衡树,它的平衡方式就是旋转 暴力旋转,赤裸裸的旋转,各种旋转 就是依靠玄学的旋转来保证自己的复杂度 不废话,上主 阅读全文
posted @ 2018-11-24 18:03 olinr 阅读(317) 评论(0) 推荐(0)
摘要:Treap 上一篇: "平衡树学习笔记(1) 简介" Treap是一个玄学的平衡树 为什么说它玄学呢? 还记得上一节说过每个平衡树都有自己的平衡方式吗? 没错,它平衡的方式是。。。。。。rand!!!! 注意,Treap是不依靠旋转平衡的!! 我认为它的思想是最好理解的,代码也简洁易懂(虽然慢了点) 阅读全文
posted @ 2018-11-24 15:32 olinr 阅读(289) 评论(0) 推荐(0)
摘要:平衡树是一个很神奇的数据结构 noip前,学了其两种实现方式,Splay和Treap,非常实用(虽然码量有点。。) 每个平衡树都是二叉查找树,保证$左孩子 \leq 自己 \leq 右孩子$ 因此,平衡树的中序遍历就是插入节点的有序序列(理解一下) 平衡树支持插入,删除,以及各种查询,以下面为例 $ 阅读全文
posted @ 2018-11-24 14:09 olinr 阅读(314) 评论(0) 推荐(0)