警示后人

P1600 [NOIP2016 提高组] 天天爱跑步

Llx2022 @ 2023-09-05 10:04:40

int LCA(int u,int v){
    while(top[u]!=top[v]){
        if(dep[top[u]]<dep[top[v]]) swap(u,v);
        u=father[top[u]];
    }
    if(dep[u]>dep[v]) swap(u,v);
    return u;
}

树剖千万别写挂了,这么写是对的。

int LCA(int u,int v){
    while(top[u]!=top[v]){
        if(dep[u]<dep[v]) swap(u,v);
        u=father[top[u]];
    }
    if(dep[u]>dep[v]) swap(u,v);
    return u;
}

底下这么写就是错的


|