关于fhqtreap的删点
查看原帖
关于fhqtreap的删点
255114
Awhale_tauntingcat楼主2023/5/11 17:24

为什么第一种写法是错的?

void del(int val){
    split(rt,val,tmp1,tmp2);
    tmp1=merge(tr[tmp1].c[0],tr[tmp1].c[1]);
    rt=merge(tmp1,tmp2);
}
void del(int val){
    split(rt,val,tmp1,tmp3),split(tmp1,val-1,tmp1,tmp2);
    tmp2=merge(tr[tmp2].c[0],tr[tmp2].c[1]);
    rt=merge(merge(tmp1,tmp2),tmp3);
}
2023/5/11 17:24
加载中...