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

    【题目描述】
    有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
    给出每个人的孩子的信息。
    输入一个序列,使得每个人的后辈都比那个人后列出。

    【输入】
    第一行一个整数(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 program gentree;
     2 var
     3   ok,n,i,now,top,pin,apple,j:longint;
     4   ru,chu:array[0..100] of longint;
     5   vis:array[1..100] of boolean;
     6   a:array[1..100,1..100] of longint;
     7 
     8 procedure init;
     9 begin
    10   readln(n);
    11   for i:= 1 to n do
    12     begin
    13      repeat
    14        inc(chu[i]);
    15        read(a[i,chu[i]]);
    16        inc(ru[a[i,chu[i]]]);
    17      until a[i,chu[i]]=0;
    18      dec(chu[i]);
    19     end;
    20 end;
    21 {
    22 procedure addstack;
    23 begin
    24     for i:= 1 to n do
    25       if ru[i]=0 then
    26         begin
    27             inc(top);
    28             stack[top]:=i;
    29         end;
    30 end;  }
    31 
    32 procedure db(apple:longint);
    33 begin
    34 
    35    for j:= 1 to chu[apple] do
    36     dec(ru[a[apple,j]]);
    37 
    38 end;
    39 
    40 procedure topo;
    41 begin
    42 
    43   repeat
    44     for i:= 1 to n do
    45       if (ru[i]=0) and (not(vis[i])) then
    46         begin
    47             write(i,' ');
    48             db(i);
    49             inc(ok);
    50             vis[i]:=true;
    51         end;
    52   until ok=n;
    53 
    54 end;
    55 
    56 begin
    57   assign(input,'gentree.in');
    58   assign(output,'gentree.out');
    59   reset(input);
    60   rewrite(output);
    61 
    62   init;
    63   topo;
    64 
    65   close(input);
    66   close(output);
    67 end.
  • 相关阅读:
    JavaSE—集合框架
    JavaSE——集合框架
    RocketMq 在Netty 下是如何进行消息封装传输
    SpringBoot 初始化流程以及各种常见第三方配置的源码实现
    Java 重要知识点,踩过的坑
    Mysql 知识储备以及InnoDB
    java 编程英语单词,语句
    PlantUML
    Rocketmq broker 消息仓库
    AutowiredAnnotationBeanPostProcessor 的一些思考
  • 原文地址:https://www.cnblogs.com/bobble/p/6411128.html
Copyright © 2011-2022 走看看