Processing math: 100%

随笔分类 -  数据结构-treap

摘要:紫薯例题 阅读全文
posted @ 2019-07-30 09:59 jrltx 阅读(221) 评论(0) 推荐(0) 编辑
摘要:维护一个01序列,一共四种操作: 1.插入一个数 2.删除一个数 3.反转一个区间 4.查询两个后缀的LCP 用Splay或者Treap都可以做,维护哈希值,二分求LCP即可。 注意反转序列的时候序列的哈希值也会改变,因此需要维护正反两个哈希值,在交换左右儿子的时候顺便交换两个哈希值即可。 还有就是 阅读全文
posted @ 2019-07-08 17:30 jrltx 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目链接 感谢Dream_Lolita的题解,经过无数次失败的尝试之后终于AC了... 线段树是维护区间信息的强大工具,但它的形态是固定的,只支持修改和删除操作,不支持插入、反转、复制、分裂合并等操作,而treap支持。这道题有个区间复制的操作,因此只能用treap来代替了。 注意几个坑点: 1.对 阅读全文
posted @ 2019-06-27 16:15 jrltx 阅读(633) 评论(0) 推荐(1) 编辑
摘要:题目链接 文艺平衡树的可持久化版,可以使用treap实现。 作为序列使用的treap相对splay的优点如下: 1.代码短 2.容易实现可持久化 3.边界处理方便(splay常常需要在左右两端加上保护结点以防越界,而treap一般不用) 可以分裂合并的treap一般称作无旋treap或FHQ-tre 阅读全文
posted @ 2019-06-27 15:44 jrltx 阅读(206) 评论(0) 推荐(0) 编辑
摘要:题目链接 splay: 无旋treap(FHQ-treap): 阅读全文
posted @ 2019-04-24 21:05 jrltx 阅读(200) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路和bzoj2141差不多,不过这道题的数据更强一些,线段树套treapT了,树状数组套treap卡过~~ 阅读全文
posted @ 2019-04-12 21:18 jrltx 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目链接 区间线段树套treap,空间复杂度O(nlogn),时间复杂度除了查询区间k大是O(log3n)以外都是O(log2n)的。 (据说线段树套线段树、树状数组套线段树也能过?) 阅读全文
posted @ 2019-04-11 20:00 jrltx 阅读(196) 评论(0) 推荐(0) 编辑
摘要:题目链接 treap及树状数组模板题。 treap版: 树状数组版: 阅读全文
posted @ 2019-04-11 14:51 jrltx 阅读(175) 评论(0) 推荐(0) 编辑
摘要:给定一个图,支持三种操作: 1.删除一条边 2.查询与x结点相连的第k大的结点 3.修改x结点的权值 解法:离线倒序操作,平衡树or线段树维护连通块中的所有结点信息,加个合并操作就行了。 感觉线段树要好写很多。 平衡树(Treap)版: 1 #include<bits/stdc++.h> 2 typ 阅读全文
posted @ 2019-01-25 14:51 jrltx 阅读(262) 评论(0) 推荐(0) 编辑
摘要:题目链接 平衡树基础题,用于测试各种平衡树的性能(雾) treap: 1 #include<bits/stdc++.h> 2 typedef long long ll; 3 using namespace std; 4 struct Treap { 5 static const int N=1e5+ 阅读全文
posted @ 2019-01-16 19:44 jrltx 阅读(205) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示