欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

1094TheLargestGeneration

时间:2023-06-03
题目大意:给出一个族谱树,相同一层为一代人,求人数最多的一代,和第几层。

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;}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。