zoukankan      html  css  js  c++  java
  • PAT:1004. Counting Leaves (30) AC

    #include<stdio.h>
    #include<vector>
    const int MAX=510;
    using namespace std;
    
    int n,m,le=0;          //节点数,非叶子节点数,最深层叶层数
    vector<int> child[MAX];    //存储孩子情况
    int number[MAX];      //每一层叶子数
    
    void DFS(int s,int l)
    {
      if(child[s].size()==0)
      {
        ++number[l];
        if(le<l)
          le=l;
        return;
      }
      for(int i=0 ; i<child[s].size() ; ++i)
      {
        DFS(child[s][i],l+1);
      }
    }
    
    int main()
    {
      scanf("%d%d",&n,&m);
      for(int i=0 ; i<m ; ++i)
      {
        int node,k,c;
        scanf("%d%d",&node,&k);
        for(int j=0 ; j<k ; ++j)
        {
          scanf("%d",&c);
          child[node].push_back(c);
        }
      }
    
      DFS(1,1);      //从节点1开始,1是第一层
    
      for(int i=1; i<=le ; ++i)    //输出每层叶子数
      {
        printf("%d",number[i]);
        if(i!=le)
          printf(" ");
      }
    
      return 0;
    }
  • 相关阅读:
    每日总结50
    每日总结49
    每日总结48
    每日总结47
    每日总结46
    每日总结45
    每日总结44
    每日总结42
    每日总结41
    每日总结39
  • 原文地址:https://www.cnblogs.com/Evence/p/4326340.html
Copyright © 2011-2022 走看看