1. 程式人生 > >1094 The Largest Generation (25 分)(樹的遍歷)

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; }