AcWing 1476. 数叶子结点
原题链接
简单
作者:
leo123456
,
2020-08-21 14:27:41
,
所有人可见
,
阅读 551
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int N=110;
int n,m;
vector<int> v[N];
int max_depth;
int cnt[N];
void dfs(int u,int depth)
{
if(v[u].size()==0)
{
cnt[depth]++;
max_depth=max(max_depth,depth);
return ;
}
for(int i=0;i<v[u].size();i++)
dfs(v[u][i],depth+1);
}
int main()
{
cin>>n>>m;
for(int i=0;i<m;i++)
{
int father,childnum;
cin>>father>>childnum;
while(childnum--)
{
int child;
cin>>child;
v[father].push_back(child);
}
}
dfs(1,0);
cout<<cnt[0];
for(int i=1;i<=max_depth;i++)
cout<<' '<<cnt[i];
return 0;
}