#include<iostream>
#include<vector>
using namespace std;
int n ,k;
vector<int> v[109];
int level[109]={0};
int maxlebel=0;
void dfs(int root,int depth)
{
//end
if(v[root].size()==0)
{
level[depth]++;
if(depth>maxlebel) maxlebel=depth;
}
for(int i=0;i<v[root].size();i++)
dfs(v[root][i],depth+1);
}
int main()
{
cin>>n>>k;
for(int i=0;i<k;i++)
{ int id,num;
cin>>id>>num;
for(int j=0;j<num;j++)
{ int temp;
cin>>temp;
v[id].push_back(temp);
}
}
dfs(1,0);
printf("%d",level[0]);
for(int i=1;i<=maxlebel;i++)
printf(" %d",level[i]);
return 0;
}
总结
1.基础题,后面有他的各种变形,注意此题要记录一下最大层序号
英语
问题
无把以前的问题处理好