为什么treap模板有段代码
if(!son[rt][0] && !son[rt][1]){
num[rt]--,siz[rt]--;
if(!num[rt]){
rt=0;
}
}else if(son[rt][0] && !son[rt][1]){
rot(rt,1);
del(son[rt][1],x);
}else if(!son[rt][0] && son[rt][1]){
rot(rt,0);
del(son[rt][0],x);
}else{
bool b=(rd[son[rt][0]]>rd[son[rt][1]]);
rot(rt,b);
del(son[rt][b],x);
}
这样写可过,但是中间两个if合并成
if(!son[rt][0] && !son[rt][1]){
num[rt]--,siz[rt]--;
if(!num[rt]){
rt=0;
}
}else if(!son[rt][0] || !son[rt][1]){
rot(rt,son[rt][0]);
del(son[rt][son[rt][0]],x);
}else{
bool b=(rd[son[rt][0]]>rd[son[rt][1]]);
rot(rt,b);
del(son[rt][b],x);
}
这样简写后就会WA 6个点,为什么呢?求大佬解答