0
点赞
收藏
分享

微信扫一扫

L2-031 深入虎穴 (25 分) (dfs

扶摇_hyber 2022-04-21 阅读 23
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+9;
int in[N];
vector<int>v[N];
int mx,ans;
void dfs(int u,int fa,int deep){
    if(deep>mx){
        mx=deep;
        ans=u;
    }
    for(auto it:v[u]){
        if(fa==it)continue;
        dfs(it,u,deep+1);
    }
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        int k;
        cin>>k;
        for(int j=1;j<=k;j++){
            int x;
            cin>>x;
            v[i].push_back(x);
            in[x]++;
        }
    }
    int root=-1;
    for(int i=1;i<=n;i++){
        if(in[i]==0){
            root=i;
            break;
        }
    }

    dfs(root,-1,1);
    cout<<ans<<"\n";

    return 0;
}
举报

相关推荐

0 条评论