码迷,mamicode.com
首页 > 其他好文 > 详细

PAT(Advanced Level)A1094. The Largest Generation

时间:2020-10-05 21:55:34      阅读:27      评论:0      收藏:0      [点我收藏+]

标签:clu   return   代码   math   namespace   最好   The   ges   a10   

题意

树的层序遍历的问题,找到结点数最多的一层,输出结点树和对应层号

思路

  • 看到是树层序遍历就立马反应过来用BFS做,可以说是裸模版的题目了
  • 层序遍历在每次扩展状态的时候都是取一层的结点数进行扩展,此时就可以直接比较来找题目要求的解了

代码

#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>
#include <queue>
#include <math.h>
using namespace std;
vector<int> tree[110];
void bfs(int st, int& numbers, int& level)
{
    queue<int> q;
    q.push(st);
    int depth = 1;
    while(!q.empty())
    {
        int size = q.size();
        if(size > numbers)     //和解进行比较,找最好
        {
            numbers = size;
            level = depth;
        }
        for(int i=0;i<size;i++)
        {
            auto cur = q.front();
            q.pop();
            for(int j=0;j<tree[cur].size();j++)
                q.push(tree[cur][j]);
        }
        depth++;
    }
}
int main()
{
    int n, m;
    cin >> n >> m;
    int id, k, t;
    for(int i=0;i<m;i++)
    {
        cin >> id >> k;
        for(int j=0;j<k;j++)
        {
            cin >> t;
            tree[id].emplace_back(t);
        }
    }
    int level_numbers = -1, level = -1;
    bfs(1, level_numbers, level);
    cout << level_numbers << " " << level;
    return 0;
}

PAT(Advanced Level)A1094. The Largest Generation

标签:clu   return   代码   math   namespace   最好   The   ges   a10   

原文地址:https://www.cnblogs.com/MartinLwx/p/13769712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!