#include<cstdio>
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
const int maxn=101;
vector<int> node[maxn];
int level[maxn]={0},maxdepth=-1;
void DFS(int index,int depth)
{
if(node[index].size()==0)
{
level[depth]++;
if(depth>maxdepth)
maxdepth=depth;
}
for(int i=0;i<node[index].size();i++)
{
DFS(node[index][i],depth+1);
}
}
int main()
{
int n,m,k,father,child;
cin>>n>>m;
for(int i=0;i<m;i++)
{
scanf("%d %d",&father,&k);
for(int j=0;j<k;j++)
{
scanf("%d",&child);
node[father].push_back(child);
}
}
DFS(1,1);
for(int i=1;i<=maxdepth;i++)
{
printf("%d",level[i]);
if(i!=maxdepth)
printf(" ");
}
}
A1004 Counting Leaves (30)树的遍历
最新推荐文章于 2022-04-16 22:36:57 发布