搬板子只有52pt的看过来
while(m--){
read(opt),read(x);
x^=last;
switch(opt){
case 1:insert(rt,x);break;
case 2:del(rt,x);break;
case 3:insert(rt,x);last=get_rank(rt,x)-1;del(rt,x);break;//看这里,先插入后删除
case 4:last=get_val(rt,x+1);break;
case 5:last=get_pre(x);break;
case 6:last=get_next(x);break;
}
if(opt>2)ans^=last;
}
在查询排名时查询的数可能不存在,所以可以试试先插入,查询后再删除。