社区讨论

关于fhqtreap的删点

P3369【模板】普通平衡树参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo2m5ea4
此快照首次捕获于
2023/10/23 16:05
2 年前
此快照最后确认于
2023/10/23 16:05
2 年前
查看原帖
为什么第一种写法是错的?
CPP
void del(int val){
    split(rt,val,tmp1,tmp2);
    tmp1=merge(tr[tmp1].c[0],tr[tmp1].c[1]);
    rt=merge(tmp1,tmp2);
}
CPP
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);
}

回复

2 条回复,欢迎继续交流。

正在加载回复...