zoukankan      html  css  js  c++  java
  • 1094. The Largest Generation (25)-(dfs,树的遍历,统计每层的节点数)

    题目很简单,就是统计一下每层的节点数,输出节点数最多的个数和对应的层数即可。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <string.h>
    
    using namespace std;
    const int maxn=105;
    int num[maxn];
    int head[maxn];
    int tot;
    
    struct Edge{
        int to;
        int next;
    }edge[maxn];
    
    void init(){
        memset(head,-1,sizeof(head));
        tot=0;
    }
    void add(int x,int y){
        edge[tot].next=head[x];
        edge[tot].to=y;
        head[x]=tot++;
    }
    void dfs(int root, int layer){
        num[layer]++;
        for(int i=head[root];i!=-1;i=edge[i].next){
            int v=edge[i].to;
            dfs(v,layer+1);
        }
    }
    int main()
    {
        int n,m,k,a,b;
        init();
        scanf("%d %d",&n,&m);
        for(int i=1;i<=m;i++){
            scanf("%d %d",&a,&k);
            for(int j=0;j<k;j++){
                scanf("%d",&b);
                add(a,b);
            }
        }
        memset(num,0,sizeof(num));
        dfs(1,1);
        int maximum=0,layer;
        for(int i=1;i<maxn;i++){
            if(num[i]>maximum){
                maximum=num[i];
                layer=i;
            }
        }
        printf("%d %d
    ",maximum,layer);
        return 0;
    }
    View Code
  • 相关阅读:
    第二次站立会议4
    第二次站立会议3
    建议总结
    对搜狗输入法的个人评价
    第二期站立会议10
    典型用户和用户场景描述
    第二期站立会议9
    第二期站立会议8
    第二期站立会议7
    第二期站立会议6
  • 原文地址:https://www.cnblogs.com/chenxiwenruo/p/6385366.html
Copyright © 2011-2022 走看看