1094. The Largest Generation 解析

xiaoxiao2021-02-28  129

求一大家子哪一辈的人数最多。

直接层序遍历,然后统计。

#include <iostream> #include <algorithm> #include <cstring> #include <climits> #include <string> #include <vector> #include <map> #include <set> #include <queue> #include <stack> #define MAX 110 using namespace std; int n,m; struct node{ int level; vector <int> next; }; node t[MAX]; int LevelCount[MAX]; int maxSize = 1; int maxLevel = 1; void LevelOrder(int root){ queue <int> q; t[root].level = 1; q.push(root); LevelCount[t[root].level]++; while(!q.empty()){ int top = q.front(); q.pop(); for(int i = 0 ; i < t[top].next.size();i++){ int cno = t[top].next[i]; t[cno].level = t[top].level + 1; LevelCount[t[cno].level]++; if(LevelCount[t[cno].level] > maxSize){ maxSize = LevelCount[t[cno].level]; maxLevel = t[cno].level; } q.push(cno); } } } int main(){ cin >> n >> m; int no,size,cno; for(int i = 0 ;i < m ; i++){ cin >> no >> size; for(int j = 0 ; j < size ;j++){ cin >> cno; t[no].next.push_back(cno); } } LevelOrder(1); cout << maxSize << " " << maxLevel << endl; return 0; }

转载请注明原文地址: https://www.6miu.com/read-34784.html

最新回复(0)