PAT1004. Counting Leaves

来源:互联网 发布:mysql不等于查询 编辑:程序博客网 时间:2024/06/09 20:15

一个dfs问题

#include<algorithm>#include<iostream>#include<vector>using namespace std;const int N=102;vector<int>son[N];int leaf[N],maxdeep;void dfs(int k,int deep){  maxdeep=max(maxdeep,deep);  if(son[k].size()==0)    leaf[deep]++;  else{    for(auto &x:son[k])      dfs(x,deep+1);  }}int main(){  int total,nonleaf;  cin>>total>>nonleaf;  while(nonleaf--){    int papa,cnt,k;    cin>>papa>>cnt;    while(cnt--){cin>>k;son[papa].push_back(k);}  }  dfs(1,0);  for(int i=0;i<=maxdeep;++i){    if(i)cout<<' ';    cout<<leaf[i];  }  return 0;}


0 0
原创粉丝点击