
平衡树
Sirius_Ren
▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇自己刮~~~
展开
-
POJ 1442 Treap模板
// by SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int cnt=0,jy,a[30500],n,m,root=-1;struct node{ int left,right,count_left,count_right,key,priority;}t原创 2016-07-09 22:30:57 · 522 阅读 · 0 评论 -
BZOJ 1507 splay
写完维修数列 这不是水题嘛233333//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=5000050;int n,pos=1,ch[N][2],fa[N],size[N],root,xx,cnt;char op[15],ins[N],原创 2017-03-04 21:01:14 · 330 阅读 · 0 评论 -
BZOJ 1500 splay终结版...
GSS系列有一丝丝像… 只不过那个是线段树 这个是splay 翻转 插入 删除啥的就是普通的splay 合在一起了而已//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct Tree{ int v,rev,sum,lmax,rmax,ma原创 2017-03-03 00:37:20 · 372 阅读 · 0 评论 -
BZOJ 3323 splay维护序列
就第三个操作比较新颖 转化成 在l前插一个点 把r和r+1合并//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=100005,mod=20130426;typedef long long ll;struct Tree{原创 2017-03-02 23:59:52 · 548 阅读 · 0 评论 -
BZOJ1901 ZOJ2112 线段树+treap (线段树套线段树)
BZOJ1901://By SiriusRen#include <cstdio>#include <algorithm>using namespace std;#define N 600050char op[3];int n,m,t,root[N],size,a[N],tmp,L,R,xx;struct Treap{int ch[2],v,cnt,rnd,sz;}tr[N];void原创 2016-12-05 18:51:29 · 495 阅读 · 0 评论 -
BZOJ 3223 Splay区间翻转
思路: 区间翻转的裸题 终于tm理解splay了……//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 155555int n,m,root,size[N],ch[N][2],fa[N],rev[N],v[N];void push_up(原创 2017-01-03 10:29:53 · 578 阅读 · 0 评论 -
BZOJ 1251 Splay维护序列
思路: splay维护序列的裸题 啊woc调了一天 感谢yzy大佬的模板……//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 55555#define inf 0x3f3f3f3fint n,m,root,cnt,size[N],ch原创 2017-01-03 10:05:39 · 370 阅读 · 0 评论 -
BZOJ 1588 平衡树 模板题
//By SiriusRen#include <cstdio>#include <algorithm>using namespace std;int size,n,xx,root,ans,tmp;struct Treap{int ch[2],v,cnt,rnd,sz;}tr[500050];void Upd(int k){tr[k].sz=tr[tr[k].ch[0]].sz+tr[tr原创 2017-01-02 09:24:26 · 401 阅读 · 0 评论 -
BZOJ 3224 平衡树模板题
Treap://By SiriusRen#include <cstdio>#include <algorithm>using namespace std;int n,op,xx,ans,size,root;struct Treap{int ch[2],v,cnt,rnd,sz;}tr[300000];void Upd(int k){tr[k].sz=tr[k].cnt+tr[tr[k].原创 2016-12-04 21:36:36 · 852 阅读 · 0 评论 -
BZOJ 3544 treap (set)
我只是想找个treap的练习题……每回找到lower_bound 就好啦//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define int long longint n,m,a[200500],sum[200500],jy,ans,root,size;原创 2016-12-09 16:34:20 · 640 阅读 · 0 评论 -
BZOJ 1503 treap
思路: treap (算是基本操作吧…..) 加减的操作数很少 就暴力好啦 每回判断一下最小的数是不是比M小 如果是 就删,继续判断搞定。//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,M,xx,size,root,jy,ans;ch原创 2016-12-09 16:25:07 · 400 阅读 · 0 评论 -
BZOJ 3196 线段树套平衡树
(代码无比丑陋)//By SiriusRen#include <cstdio>#include <algorithm>using namespace std;int n,m,L,R,xx,tx,t,root[3000050],size,ans,op,inf=0x3fffffff,a[500050];struct Treap{int ch[2],v,cnt,sz,rnd;}tr[300005原创 2016-12-05 00:34:00 · 877 阅读 · 1 评论 -
BZOJ 1146 二分+链剖+线段树+treap
思路: 恶心的数据结构题……首先 我们 链剖 把树 变成序列 再 套一个 区间 第K大就好了…… 复杂度(n*log^4n)//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 88888#define inf 1000000原创 2016-12-12 10:46:49 · 654 阅读 · 0 评论 -
BZOJ 3262 cdq分治 OR 树套树
注意判断 三个条件都一样的…… CDQ分治 其实就是看左半部分对右半部分的贡献 (其实并不是很难理解 只是想不到……)CDQ分治://By SiriusRen#include <cstdio>#include <algorithm>using namespace std;#define N 888888int n,k,tree[N],tot,ans[N];struct No原创 2016-12-11 15:43:39 · 741 阅读 · 0 评论 -
BZOJ 3729 splay维护DFS序+博弈论
思路: 这像是 阶梯Nim之类的东西 我们 直接把sg函数 设成mod(L+1)的 一棵子树 向下的奇数层上的石子xor起来 就是答案 有加点和改值的操作 就splay维护一下//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=1原创 2017-02-26 16:10:56 · 700 阅读 · 0 评论