一个关于pushup的问题
查看原帖
一个关于pushup的问题
757101
junee楼主2024/1/26 15:57

1

void rotate(int u){
    int y=tr[u].p,z=tr[y].p;
    int k=tr[y].s[1]==u;
    tr[z].s[tr[z].s[1]==y]=u,tr[u].p=z;
    tr[y].s[k]=tr[u].s[k^1],tr[tr[u].s[k^1]].p=y;
    tr[u].s[k^1]=y,tr[y].p=u;
    pushup(y),pushup(u);
}

2

void rotate(int u){
    int y=tr[u].p,z=tr[y].p;
    int k=tr[y].s[1]==u;
    tr[z].s[tr[z].s[1]==y]=u,tr[u].p=z;
    tr[y].s[k]=tr[u].s[k^1],tr[tr[u].s[k^1]].p=y;
    tr[u].s[k^1]=y,tr[y].p=u;
    pushup(u),pushup(y);
}

为什么第一个代码先上传y在上传u可以通过,但是先上传u,在上传y会RE呢

2024/1/26 15:57
加载中...