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].ch[0]].sz+tr[tr[k].ch[1]].sz;} void rot(i…
再刷水题我就废了... #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define lc(x) ch[x][0] #define rc(x) ch[x][1] #define inf 0x3f3f3f3f #define N 200005 using namespace std; ]; int k[N];int cnt,root; int size[N],…
Treap: //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[k].ch[1]].sz+tr[k].cnt;} void rot(…
The kth great number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) [Problem Description] Xiao  Ming  and  Xiao  Bao  are  playing  a  simple  Numbers  game.  In  a  round  Xiao  Ming  can choose  to  write  down …
删除节点时把节点splay到根: 然后把根左子树的最右边节点splay到根的左孩子上: 然后删除就可以了: 我的教训是删根的时候根的右孩子的父亲指针一定要记得指向根的左孩子!!! my AC code  2016-03-06加上了内存池: #include<cctype> #include<cstdio> #include<cstring> #include<algorithm> #define for1(i,a,b) for(int i=(a);i<…
就是打个翻转标记,下推标记时记得交换左右孩子指针,查询kth和中序遍历输出时也记得要下推标记同时交换指针,二者不可缺!←这是易错点 仿陈竞潇学长模板的代码: #include<cctype> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node{ node(); node *ch[2],*fa; short reversal; short…
BZOJ 1208 宠物收养所 我犯过的错误:删除一个节点后没有update新的根节点,导致size错了! #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define space putchar(' ') #define enter putchar('\n') using namespace std; typedef long long ll; temp…
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 求x的后继(后继定义为大于x,且最小的数) 输入输出格式 输入格式: 第一行为n,表示操作的个数,下面n行每行有两个数opt和x,opt表示操作的序号(1<=opt<=6) 输出格式: 对于操作3,4,5,6每行输出一个数,表示对应答案 输…
水题...貌似理解splay怎么维护数列了... 每个点维护一个size,它的位置就是它的size,区间翻转的话可以打标记,find的时候push_down,交换左右子树. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define N 100005 #define lc(x) ch[x][0] #define rc(x) ch[x][1] using n…
自己yy了找前驱和后继,学了学怎么删除...(反正就是练模板) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define N 80005 #define lc(x) ch[x][0] #define rc(x) ch[x][1] #define inf 0x3f3f3f3f using namespace std; ],size,ch[N*][],roo…