1094. The Largest Generation (25)

题目地址:http://www.patest.cn/contests/pat-a-practise/1094

/* 1094. The Largest Generation (25) http://www.patest.cn/contests/pat-a-practise/1094 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <vector>
#include <string>
#include <unordered_map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;

#define N 105

int n , m;

vector<int> v[N];
int cont[N] ;

unordered_map<int , int> um ;
int maxNum ;
int cengci ;
void BFS()
{
    maxNum = 0;

    queue<int> que;
    que.push(1);
    cont[1] = 1;
    while( !que.empty() )
    {
        int no = que.front();
        que.pop();

        um[cont[no]] ++; // 这里用map累加该层次的人数 
        if(um[cont[no]] > maxNum)
        {
            maxNum = um[cont[no]];
            cengci = cont[no] ;
        }

        int len = v[no].size();
        for(int i = 0 ; i < len ; i ++)
        {
            int no_next = v[no][i];
            cont[no_next] =  cont[no] + 1 ;
            que.push(no_next);
        }
    }
}

int main()
{
    //freopen("in.txt","r",stdin);
    scanf("%d%d",&n,&m);
    int i , j ;
    int id , k ,tmp;
    for(i = 0 ; i < m ; i++)
    {
        scanf("%d%d",&id,&k);
        for(j = 0 ;j < k ;j ++)
        {
            scanf("%d",&tmp) ;
            v[id].push_back(tmp);
        }
    }
    BFS();
    printf("%d %d\n",maxNum , cengci);
    return 0;
}

你可能感兴趣的:(1094. The Largest Generation (25))