注意
哈希表用来记录层数和该层的节点个数很关键
#include<bits/stdc++.h>
using namespace std;
int m,n;
vector<int> G[105];
int hashT[105];
void dfs(int i, int level){
hashT[level]++;
for(int j=0;j<G[i].size();j++){
int v = G[i][j];
dfs(v,level+1);
}
}
int main(){
int u,v,k;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>u>>k;
while(k--){
cin>>v;
G[u].push_back(v);
}
}
dfs(1,1);
int ans=0,t;
for(int i=1;i<=n;i++){
if(hashT[i] > ans){
ans = hashT[i];
t = i;
}
}
cout<<ans<<" "<<t<<endl;
return 0;
}
京公网安备 11010502036488号