平衡树24题(更新中…) 前言: 我写的平衡树题里不是用Treap解决的,就是用Fhq Treap写的,还有极少数是用Splay写的。 说说这几个树的区别与优劣: Treap是编码相对来说最容易的,但是由于它的结构不能改变,以致许多题目不能实现,区间操作也不行。一般来说,Treap可以打裸题,或者作 ...
分类:
其他好文 时间:
2019-08-09 23:32:41
阅读次数:
120
~~震惊,我竟然写出了fhq Treap~~ 先%fhq大佬 然后%zxy大佬 节点定义 特有操作 fhq Treap也被叫做无旋Treap,它通过分裂与合并来维持平衡和堆的性质。 按值分裂 将树分成x,y两颗树,其中x中的元素都小于等于w,y中的元素都大于w。 按地址传参,调用后x,y为新树的根。 ...
分类:
其他好文 时间:
2019-05-13 01:01:29
阅读次数:
177
今天翻了翻其他大佬的博客,发现自己有些。。。颓废。。。 有必要洗心革面,好好学习 序:正常的BST有可能退化,成为链,大大降低效率,所以有很多方法来保持左右size的平衡,本文将简单介绍Treap,Splay,替罪羊,FHQ Treap; 另:代码都是普通平衡树 1.Treap 树堆,在数据结构中也 ...
分类:
其他好文 时间:
2019-05-06 11:48:36
阅读次数:
111
~~又是一个学数据结构学傻了的人~~ ~~才不会承认是看到Splay,觉得可以写平衡树才进来的呢~~ Description: 给出一个序列,问排序后,选取两个区间,使其没有重合部分,且每个区间右端点减去左端点不大于k,求这两个区间长度之和的最大值。 前置技能:FHQ Treap、线段树 ~~(不会 ...
分类:
其他好文 时间:
2019-05-03 18:23:03
阅读次数:
123
思路 直接使用FHQ Treap维护即可 代码 cpp include include include using namespace std; struct Node{ int lson,rson,val,ran,sz,inv; }FHQ[100100]; int Nodecnt=0,a[1001 ...
分类:
其他好文 时间:
2019-04-15 18:17:06
阅读次数:
184
这里给出博主的几种平衡树模板代码 vector 代码: Treap: Splay 替罪羊树 FHQ treap ...
分类:
其他好文 时间:
2019-04-07 14:31:34
阅读次数:
107
学了一下,好像明白了(背下来了) 不想写main函数了 PS:这个比treap好写(私以为) ...
分类:
其他好文 时间:
2019-03-26 16:47:05
阅读次数:
162
"题目链接 $Click$ $Here$" 线段树合并,没想到学起来意外的很简单,一般合并权值线段树。 建树方法和主席树一致,即动态开点。合并方法类似于$FHQ$的合并,就是把两棵树的信息整合到一个里面。暂时没写过定义域不同的线段树合并,具体方法也想象不出来,写到了再详细讲吧。 算法复杂度:均摊$O ...
分类:
其他好文 时间:
2019-03-18 21:07:41
阅读次数:
177
题意翻译 题目大意: 有n种T恤,每种有价格ci和品质qi。有m个人要买T恤,第i个人有vi元,每人每次都会买一件能买得起的qi最大的T恤。一个人只能买一种T恤一件,所有人之间都是独立的。问最后每个人买了多少件T恤? 题目描述 The big consignment of t-shirts goes ...
分类:
其他好文 时间:
2019-02-02 11:12:54
阅读次数:
106