普通 文艺:无旋treap(可持久化,区间操作),解决普通平衡树、文艺平衡树

无旋treap

无旋treap,又名fhq_treap是范浩强巨佬发明的不用旋转维护treap性质的神奇数据结构,比起普通treap,可以解决许多区间操作问题,还可持久化,代码也简单

例一:普通平衡树tyvj1728(treap模板)

如果想看旋转treap怎么写戳这儿
无旋treap代码:

#include<bits/stdc++.h>using namespace std;const int N=5e5+5;struct node{int val,ch[2],size,rd;#define l(x) t[x].ch[0]#define r(x) t[x].ch[1]}t[N]; struct treap{int root,x,y,z,cnt;inline void up(int x){t[x].size=1+t[l(x)].size+t[r(x)].size;} inline int new_node(int x){t[++cnt].size=1;t[cnt].val=x;t[cnt].rd=rand();return cnt;}void split(int now,int k,int &x,int &y){if(!now)x=y=0;else{if(t[now].val<=k)x=now,split(r(now),k,r(now),y);else y=now,split(l(now),k,x,l(now));up(now);}}int merge(int A

相关推荐

相关文章