在做P1486鬼子进村的时候,我使用了Treap,一开始的插入中我是以这样的顺序写的
if(x>val[p]){
ins(son[p][1],x);
if(rd[p]<rd[son[p][1]]) rotate(p,0);
}
if(x<val[p]){
ins(son[p][0],x);
if(rd[p]<rd[son[p][0]]) rotate(p,1);
}
然后只得了55分
然后改成下面的顺序就变成了100分
if(x<val[p]){
ins(son[p][0],x);
if(rd[p]<rd[son[p][0]]) rotate(p,1);
}
if(x>val[p]){
ins(son[p][1],x);
if(rd[p]<rd[son[p][1]]) rotate(p,0);
}
这两种情况应该不是不相交的吗,为什么答案会被顺序影响呢