bfs,dfs都可以
#include#include #include using namespace std; vector e[200]; unordered_map mp,root; int u,h,s; void bfs() { queue >que; que.push({u,1}); while(que.size()) { auto t = que.front();que.pop(); int v = t.first,c = t.second; mp[c] ++; for(auto it : e[v]) { que.push({it,c + 1}); } } } int main() { int n,m; cin >> n >> m; while(m --) { int fa,cs,ch; cin >> fa >> cs; for(int i = 0; i < cs; i ++) { cin >> ch; root[ch] = 1; e[fa] .push_back(ch); } } for(int i = 1; i <= n; i ++) if(!root.count(i)) u = i; bfs(); for(auto it : mp) { if(it.second > s) s = it.second,h = it.first; } cout << s << ' ' << h << endl; return 0; }



