求静态普通树每层的元素个数
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
vector<int> T[110];
int num[110];
int max_depth=1;
void dfs(int root,int depth){
num[depth]++;
if(T[root].size()==0){
if(depth>max_depth) max_depth=depth;
return;
}
for(int i=0;i<T[root].size();i++){
dfs(T[root][i],depth+1);
}
}
int main(){
int n,m,tmp_id,k,tmp_data;
scanf("%d %d",&n,&m);
while(m--){
scanf("%02d %d",&tmp_id,&k);
while(k--){
scanf("%02d",&tmp_data);
T[tmp_id].push_back(tmp_data);
}
}
dfs(1,1);
int largest_num=0,largest_depth=1;
for(int i=1;i<=max_depth;i++){
if(num[i]>largest_num){
largest_num=num[i];
largest_depth=i;
}
}
printf("%d %d",largest_num,largest_depth);
return 0;
}