第一次 一边提交过,值得纪念一下
#include <bits/stdc++.h>
#define N 105
using namespace std;
vector<int> a[N];
int fa[N];
int n,m;
int find_f(){
for(int i = 0; i < n; i++)
if(fa[i+1] == i+1) return i+1;
return -1;
}
int main(){
//freopen("1.txt","r",stdin);
cin >> n >> m;
for(int i = 0; i < n; i++) fa[i] = i;
int f,num,child;
while(m--){
cin >> f >> num;
while(num--){
cin >> child;
a[f].push_back(child);
fa[child] = f;
}
}
int root = find_f(),flag = 0;
queue<int> q; q.push(root);
while(!q.empty()){
int nu = 0;
vector<int> ff;
while(!q.empty()){
ff.push_back(q.front()); q.pop();
}
for(int i = 0; i < ff.size(); i++){
if(a[ff[i]].size() == 0) nu++;
else {
for(int j = 0; j < a[ff[i]].size(); j++)
q.push(a[ff[i]][j]);
}
}
if(flag == 1) cout << " ";
cout << nu; flag = 1;
}
}