1094 The Largest Generation (25 分)(树的遍历)

求结点最多的一层 输出该层的结点个数以及层号

#include<bits/stdc++.h>

using namespace std;
vector<int>vec[120];
map<int,int>mp;
void dfs(int v,int step)
{
    mp[step]++;
    if(vec[v].size()==0){
        return;
    }
    for(int i=0;i<vec[v].size();i++){
        dfs(vec[v][i],step+1);
    }
}
int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    for(int i=0;i<m;i++){
        int id;
        int k;
        scanf("%d %d",&id,&k);
        while(k--){
            int x;
            scanf("%d",&x);
            vec[id].push_back(x);
        }
    }
    dfs(1,1);
    multimap<int,int,greater<int> >M;
    for(auto it:mp){
        M.insert(pair<int,int>(it.second,it.first));
    }
    auto it=M.begin();
    cout<<it->first<<" "<<it->second<<endl;


    return 0;
}
原文地址:https://www.cnblogs.com/chenchen-12/p/10085136.html