当前位置:网站首页>PAT1004

PAT1004

2022-08-09 11:09:00 AlanLiu6

很简单的一道题,pat给的分数好迷啊。

https://pintia.cn/problem-sets/994805342720868352/problems/994805519074574336

#include<cstdio>
const int INF = 1e9+7;


int dad[105];  // 父节点数组
int num[105];   // 每一层的叶子节点数量

int n,m;
int maxLevel = 0;
int cal(int id,int level)
{
    if (level > maxLevel) maxLevel = level;
    int flag=0;
    for(int i = 1;i <= n;i++)
    {
        if(dad[i] == id)
        {
            flag++;
            int temp = cal(i,level+1);
            if(temp == 0) num[level+1]++;
        }
    }
    return flag;
}

int main()
{
    for(int i = 1;i < 100;i++)
    {
        dad[i] = 0;
        num[i] = 0;
    }

   // int n,m;
    scanf("%d %d",&n,&m);



    for(int i = 1;i <= m;i++)
    {
        int id,k;
        scanf("%d %d",&id,&k);
        for(int j = 1;j <= k;j++)
        {
            int t;
            scanf("%d",&t);
            dad[t] = id;
        }
    }
    
    if(n == 1)
    {
         printf("1\n");
         return 0;
    }
    cal(01,1);

    printf("%d",num[1]);
    for(int i = 2;i <= maxLevel;i++)
    {
      //  if(num[i] == -1) break;
        printf(" %d",num[i]);
    }
    printf("\n");

    return 0;
}

原网站

版权声明
本文为[AlanLiu6]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Alen666/article/details/97576208