Splay模板指针实现
splay中序遍历维护原序列下标的顺序,翻转后这个顺序会改变,但是splay中第x个数代表变换后序列中第x个数
这样就可以直接查找变换后的序列
重在代码
文艺平衡树
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;
struct node
{
node *ls,*rs,*fa;
node(int x);
void pushdown();
void pushup();
int rev,num,sz;
}*null=new node(0),*root=null;//空指针可以直接建出来,NULL容易出错
node::node(int x)
{
ls=rs=fa=null;
sz=rev=0;
num=x;
}
void node ::pushdown()
{
if(rev)//rev翻转标记,表示子节点是否翻转
{