记得有一天翔哥毒奶我们: 当你们已经在平衡树的海洋中畅游时,我还在线段树的泥沼中挣扎. 我觉得其实像我这种对平衡树一无所知的蒟蒻也要开一开数据结构了. 然后花了一天啃了下最简单的平衡树Treap,感觉还是可以接受的. 下一步争取把Splay和替罪羊树给nāng下来.至于SB-tree还是算了吧. 首先我们要知道Treap为什么要叫Treap,这很简单: Treap=Tree+heap(树+堆) 我们类比于一般的BST,它们都有一些共同的特点: 都是二叉树的结构 对于所有的非叶子节点,它的左儿子(…
在平衡树的广阔天地中,以Treap,Splay等为代表的通过旋转来维护平衡的文艺平衡树占了觉大部分. 然而,今天我们要讲的Scapegoat Tree(替罪羊树)就是一个特立独行的平衡树,它通过暴力重构来维护平衡,并且凭借着好写,好调,常数小等特点十分有用. 记得g1n0st说过: 暴力即是优雅. 当然这里说的暴力并不是指那种不加以思考的无脑的暴力,而是说用繁琐而技巧性的工作可以实现的事,我用看似简单的思想和方法,也可以达到近似于前者的空间复杂度和时间复杂度,甚至可以更优,而其中也或多或少的夹杂…
Preface 由于我怕学习了Splay之后不直接写blog第二天就忘了,所以强行加了一波优先级. 论谁是天下最秀平衡树,我Splay第一个不服.维护平衡只靠旋转. 一言不合转死你 由于平衡树我也介绍了两种Treap&&Scapegoat Tree,所以一些互通的东西也不讲了. 这次的亮点主要是为了弥补Splay的巨大常数(据说是96),我把大量的函数都写成了迭代版本. 废话不多说开讲. 维护平衡的方式--旋转 关于旋转操作,在Treap的那篇文章中已经讲的比较详细了. 但是注意一下Spl…
Preface 关于那些比较基础的平衡树我想我之前已经介绍的已经挺多了. 但是像Treap,Splay这样的旋转平衡树码亮太大,而像替罪羊树这样的重量平衡树却没有什么实际意义. 然而类似于SBT,AVL,RBT这些高级的乱搞平衡树无论时思想还是码量都让人难以接受. 而且在许多复杂的问题中需要维护区间,但是Splay的维护区间对于我这个蒟蒻来说实在是学不会. 许多的原因综合起来,在加上CJJ dalao的偶然安利,我便结识了神奇的FHQ Treap,一眼本命平衡树的感觉. 所以NOIP结束以后立马…
[BZOJ5020][THUWC2017]在美妙的数学王国中畅游(Link-Cut Tree,组合数学) 题解 Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言: "学好数理化,走遍天下都不怕." 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一…
前言 平衡树在我的心目中,一直都是一个很高深莫测的数据结构.不过,由于最近做的题目的题解中经常出现"平衡树"这三个字,我决定从最简单的替罪羊树开始,好好学习平衡树. 简介 替罪羊树,英文名\(Scapegoat\ Tree\),是我认为平衡树中最简单的一种. 替罪羊树可以当作一棵非常暴力的二叉搜索树,因为它除了在子树不平衡时会暴力重构(不然为什么叫它平衡树)以外几乎和BST没有任何区别. 替罪羊树的基础操作 插入 不得不说,替罪羊树的插入操作简直与BST一模一样. 直接上代码: inl…
分析 又有毒瘤出题人把数学题出在树上了. 根据泰勒展开,有: \[e^x=1+\frac{1}{1!}x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+...\] \[sin(x)=x-\frac{1}{3!}x^3+\frac{1}{5!}x^5-...\] 然而题目里\(x\)的位置是一个\(ax+b\)怎么办啊?直接根据二项式定理暴力展开就好了. 题目中要求支持加边删边,可以想到肯定是LCT.维护一下链上所有结点各次项系数和,查询时直接利用整条链的信息计算答案即可. 计算…
替罪羊树(Scapegoat Tree) 入门模板题 洛谷oj P3369 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入xx数 删除xx数(若有多个相同的数,因只删除一个) 查询xx数的排名(排名定义为比当前数小的数的个数+1+1.若有多个相同的数,因输出最小的排名) 查询排名为xx的数 求xx的前驱(前驱定义为小于xx,且最大的数) 求xx的后继(后继定义为大于xx,且最小的数) 输入格式 第一行为n,表示操作的个数,下面n行每行有两个数opt和…
十月,原本是怀胎过程的喜悦时光,但这段个时光,如今却是绝大多数App从生到死的所有时间.在App市场表面形式一片大好,彻底主宰我们生活.工作.娱乐的当下,绝大多数用户只是在App海洋中只取一瓢饮,其他的则是自生自灭,日现颓势. 在当下,App市场遵循着绝对的"二八定律".只有占总量20%左右的App出现在用户屏幕中,并攫取绝大多数盈利.虽然大家都不喜欢"2"这个数字,但却又都无限向往着成为"二"中的一员.做App中的那个"二"…
http://www.cnblogs.com/fancycloud/archive/2011/07/24/2115240.html FastReport 中添加二维码功能.(Delphi)   在实际工作中的遇到需要打印二维码的需求,但Delphi下的FastReport打印控件无此功能. 无办法,为了完成项目,就自己扩展了FastReport中的功能. 实现了在设计时,可定义二唯码的功能,在FastReport中控件组中添加二维码控件. 目前支持三种码制:PDF417,QRCode,DataM…