zoukankan      html  css  js  c++  java
  • 家谱树(拓扑)

    家谱树
    【问题描述】
        有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
        给出每个人的孩子的信息。
        输出一个序列,使得每个人的后辈都比那个人后列出。
    【输入格式】
        第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 }
  • 相关阅读:
    linux根目录空间不足
    兴趣点 / 关键点( Interest point/Keypoint )
    opencv批量修改图片尺寸
    Excel批量修改文件
    xm数据写入
    opencv矩阵操作
    SVM参数解析
    Mat取行或列
    clone()与image和 cloneTo()
    最大连通域(指针)
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6709924.html
Copyright © 2011-2022 走看看