1094 The Largest Generation (25 分)(樹的遍歷)
阿新 • • 發佈:2018-12-07
求結點最多的一層 輸出該層的結點個數以及層號
#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; }