题目大意:给出一个族谱树,相同一层为一代人,求人数最多的一代,和第几层。
bfs,dfs都可以
#include #include #include using namespace std;vectore[200];unordered_mapmp,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;}