#include<stdio.h>
#include<vector>
using namespace std;
int n, m, max_depth=-1;
struct pnode{
vector<int> child;
}node[110];
int level_num[110]={0};
void DFS(int root, int depth){
if(node[root].child.size()==0){level_num[depth]++; }
if(depth>max_depth)max_depth=depth;
for(int i=0;i<node[root].child.size();i++){
DFS(node[root].child[i],depth+1);
}
}
int main(){
int i, j, id, k, temp;
scanf("%d%d",&n,&m);
for(i=0;i<m;i++){
scanf("%d%d",&id,&k);
for(j=0;j<k;j++){
scanf("%d",&temp);
node[id].child.push_back(temp);
}
}
DFS(1,0);
for(i=0;i<=max_depth;i++){
printf("%d",level_num[i]);
if(i<max_depth)printf(" ");
}
return 0;
}
PAT-A1004
最新推荐文章于 2023-04-25 18:03:41 发布