1 条题解

  • 1
    @ 2023-6-28 10:02:05

    因为 nn 很小,所以可以暴力求解,无需倍增。

    #include <bits/stdc++.h>
    using namespace std;
    int n,a,b,x,y;
    int f[101];
    bool vis[101];
    int main(){
        cin>>n>>x>>y;
        for (int i=1;i<n;i++){
            cin>>a>>b;
            f[a]=b;
        }
        while (x){//标记x的所有祖先结点
            vis[x]=1;
            x=f[x];
        }
        while (!vis[y]){//寻找y与x相同的祖先结点
            y=f[y];
        }
        cout<<y<<endl;
        return 0;
    }
    
    • 1

    【入门】树的公共祖先(LCA)

    信息

    ID
    1163
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    26
    已通过
    15
    上传者