• 家谱树(拓扑)


    家谱树
    【问题描述】
        有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
        给出每个人的孩子的信息。
        输出一个序列,使得每个人的后辈都比那个人后列出。
    【输入格式】
        第1行一个整数N(1<=N<=100),表示家族的人数。
        接下来N行,第I行描述第I个人的儿子。
        每行最后是0表示描述完毕。
    【输出格式】
        输出一个序列,使得每个人的后辈都比那个人后列出。
        如果有多解输出任意一解。
    【输入样例】
        5
        0
        4 5 1 0
        1 0
        5 3 0
        3 0
    【输出样例】
        2 4 5 3 1
     1 #include<iostream>
     2 using namespace std;
     3 #define N 1010
     4 int son[N][N];
     5 int n,m;
     6 int stack[N];
     7 int top;
     8 int ru[N];
     9 int main()
    10 {
    11     cin>>n;
    12     for(int i=1;i<=n;++i)
    13     {
    14         while(cin>>m)
    15         {
    16             if(m==0)break;
    17             son[i][++son[i][0]]=m;
    18             ru[m]++;
    19         }
    20     }
    21     for(int i=1;i<=n;++i)
    22     if(ru[i]==0)stack[++top]=i;
    23     for(int i=1;i<=n;++i)
    24     {
    25         int d=stack[top--];
    26         cout<<d<<" ";
    27         for(int j=1;j<=son[d][0];++j)
    28         {
    29             ru[son[d][j]]--;
    30             if(ru[son[d][j]]==0)stack[++top]=son[d][j];
    31         }
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    【原创】虚拟机上实现绑定固定IP扩主机容器互访
    docker entrypoint入口文件详解
    数据库博客推荐
    docker下centos安装ping命令
    Dockerfile指令详解
    Elasticsearch Java API 的使用
    docker容器里面安装ssh
    RPM安装命令总结
    Docker容器的跨主机连接
    使用Java程序片段动态生成表格
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6709924.html
Copyright © 2020-2023  润新知