首页 > TAG信息列表 > 无旋
POJ3580SuperMemo(无旋treap-平衡树的区间操作)
题目传送门:http://poj.org/problem?id=3580 题意:有一个序列,有6种操作: ADD x y D:将x-y区间内的值全部加D,例如,将区间{1, 2, 3, 4, 5} 2-4 全部+1 得到 {1, 3, 4, 5, 5} REVERSE x y: 将x-y区间内的值全部翻转. 例如,翻转 区间 2-4,{1, 2, 3, 4, 5} 得到 {1, 4, 3, 2, 5} REVOLVE x洛谷P3369 【模板】普通平衡树(无旋treap数组版)
题目传送门:https://www.luogu.com.cn/problem/P3369 模板: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 using namespace std; 6 const int MAXN = 100005; 7 const int MOD = 2147483647; 8【无旋treap hash】匹配(2022.5.21)
上题目! 题目 1.1 题目描述 给定一个仅含小写字母的字符串 S[0..n-1],对于一个询问 (p, q, len),我们想知道它的两个子串 S[p..p+len-1]、S[q..q+len-1] 是否相同。更多地,我们希望在对串 S 完成一些操作之后还能高效地得到这个结果。 我们具体要维护以下几个操作(其中 L[学习笔记]平衡树维护序列操作
只会无旋\(treap\)。 因为不会\(splay\)。 用平衡树维护序列操作时,我们的\(key\)为序列下标,即我们中序遍历整颗树,其和答案序列相同。 下面说明以无旋\(treap\)说明几种操作。 三种比较常见的对序列操作的,线段树无法操作的: 插入 即和普通无旋\(treap\)插入单点一样,分裂,单点,合并。FHQ Treap(无旋 Treap)详解
FHQ Treap(无旋 Treap) 简介 FHQ Treap,也称无旋Treap,是范浩强神犇发明的一种平衡树,我认为这是最好写,最简短,最清晰的平衡树之一,码量很小,完全可以在OI限时比赛中使用。它基于分裂(Split)和合并(Merge)操作,使得二叉查找树的形态趋近平衡 实现 存储与维护 和有旋Treap一样,无旋Treap同样需要[Bzoj3223][Tyvj1729] 文艺平衡树(splay/无旋Treap)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3223 平衡树处理区间问题的入门题目,普通平衡树那道题在维护平衡树上是以每个数的值作为维护的标准,而处理区间问题时,维护平衡树的应该是每个位置的下标,所以平衡树中序遍历时应该是当前区间的样子。例如: {1 2 3 4 5}翻转区[Bzoj1014][JSOI2008]火星人prefix(无旋Treap)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1014 因为涉及到增加和修改,所以后缀数组就被pass掉了,想到的就是平衡树维护hash值,查询的时候就是二分相同的长度来比较,修改就是删除再增加。 这里使用的是无旋Treap 1 #include<bits/stdc++.h> 2 using namespace st