1094. The Largest Generation (25)

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

经典的queue 处理 类似树 结构的题目,类似 BFS,层次遍历

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <math.h>
#include <string>
#include <string.h>
#include <queue>
#include <unordered_map>
#include <algorithm>

using namespace std;

#define N 101

int n, m;

vector<int> menber[N];

int cengci[N];
unordered_map<int, int> um;

void func(int rootNum)
{
  queue<int> que;
  que.push(rootNum);
  cengci[rootNum] = 1;
  int i;
  int maxCeng = 0;
  int maxNum = 0;
  while (!que.empty())
  {
    int nowC = que.front();
    que.pop();
    int nowCengci = cengci[nowC];
    um[nowCengci] += 1;

    if (um[nowCengci] > maxNum)
    {
      maxNum = um[nowCengci];
      maxCeng = nowCengci;
    }
    int lenc = menber[nowC].size();
    for (i = 0; i < lenc; i++)
    {
      int childc = menber[nowC][i];
      cengci[childc] = nowCengci + 1;
      que.push(childc);
    }
  }
  printf("%d %d\n",maxNum,maxCeng);
}

int main()
{
  //freopen("in", "r", stdin);
  scanf("%d%d", &n, &m);
  int i, j;
  int id, k, tmpc;
  for (i = 0; i < m; i++)
  {
    scanf("%d%d", &id, &k);
    for (j = 0; j < k; j++)
    {
      scanf("%d", &tmpc);
      menber[id].push_back(tmpc);
    }
  }

  func(1);
  //printf("\n");
  return 0;
}

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