RT
void ins(int x){
if(!rt){
val[++tot]=x;
rt=tot;
cnt[tot]++;
update(rt);
return;
}
int cnr=rt,f=0;
while(1){
if(x==val[cnr]){
cnt[cnr]++;
splay(cnr);
return;
}
f=cnr;
cnr=ch[cnr][val[cnr]<x];
if(!cnr){
val[++tot]=x;
cnt[tot]++;
fa[tot]=f;
ch[f][val[f]<x]=tot;
splay(tot);
return;
}
}
}
写注释的时候发现的,手摸了一遍,反正都要旋转上去的,旋转的时候也会更新?,好奇怪