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

【输入】
第一行一个整数(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.

转载于:https://www.cnblogs.com/bobble/p/6411128.html

家谱树(gentree)相关推荐

  1. php递归面包屑,php可应用于面包屑导航的递归寻找家谱树实现方法

    本文实例讲述了php可应用于面包屑导航的递归寻找家谱树实现方法.分享给大家供大家参考.具体实现方法如下:<?phpecho " ";$area = array(array(& ...

  2. Php数组面包屑导航,php可应用于面包屑导航的迭代寻找家谱树实现方法

    php是通过定义类来实现迭代器接口来构造迭代器,通过yield构造迭代器可以提高性能并节省系统开销,下面就跟着爱站技术频道小编的步伐来学习php可应用于面包屑导航的迭代寻找家谱树实现方法吧. 具体实现 ...

  3. java家谱树_青锋家谱系统-基于springboot+orgtree的青锋家谱树管理系统

    gen 青锋家谱系统:基于springboot架构的家谱项目系统 项目介绍 基于springboot.orgtree的家谱树管理系统,将纸质版的家谱进行电子化.信息化,建立家族的家谱血脉联系. [青锋 ...

  4. 家谱树 (并查集拓扑排序)

    目录 拓扑排序 Kahn. 最后附上Kahn的代码: 链式前向星做法: 其次是我用Kahn做的家谱树的代码(矩阵): 其次是我用Kahn做的家谱树的代码(链式前向星): [题目描述] 有个人的家族很大 ...

  5. php子孙树,递归 迭代 得到家谱树 子孙树

    $arr=array( array('id'=>'1','name'=>'吉林','parent'=>0), array('id'=>'2','name'=>'北京',' ...

  6. PHP之实现 家谱树,子孙树

    // 家谱树 function familytree2($arr,$id) { static $Tree = array(); foreach($arr as $k=>$v) { if($v-& ...

  7. 无限极分类JAVA 实现—查子孙树、家谱树

    无限极分类JAVA  实现-查子孙树.家谱树 效果展示: import java.util.*;public class Test {List<HashMap<String, Object ...

  8. AcWing 1191. 家谱树 题解(拓扑排序)

    AcWing 1191. 家谱树 拓扑排序:建立一个队列,遍历所有点,将度数为1的点全部加入队列中,之后队内元素依次出队,对出队的点遍历所有临边,将这些临点的入度–,如果临点的入度为0,则加入队列中, ...

  9. 无限极分类php实现—查子孙树、家谱树

    <?php// 无限级分类中,查家谱树 $area = array( 0=>array('cat_id'=>1,'cat_name'=>'北京市','parent_id'=&g ...

最新文章

  1. Actionscript3.0动画编程中的几种特效举例
  2. 【成长之路】【python】python基础5-模块
  3. informatica数据脱敏_助您首个大数据项目破茧成蝶的实践指南
  4. 论PS的功力,英伟达的AI这次谁也不服
  5. 鼠标点计算机再点网络也是选定,鼠标左键单击变双击,点一下变两下是什么原因?...
  6. android实现高德地图实时导航,高德地图之实时导航
  7. xp系统无法访问计算机,xp系统Workgroup无法访问怎么解决
  8. 冬天 计算机无法启动不了怎么办,每次到冬天电脑就开不了
  9. HDU - 5510 Bazinga
  10. python 自动生成问卷表的软件的设计与实现 毕业设计源码291138
  11. AMC数学考试能用计算机吗,重大调整!今年美国数学竞赛AMC考试时间有变化!
  12. manjaro 安装的艰辛历程,常用软件安装以及踩坑
  13. C#中转义字符\r, \n, \r\n, \t, \b, @作用
  14. 东南大学计算机专硕录取分数线,东南大学研究生录取分数线
  15. 2021年上半年软件设计师下午真题试题(案例分析)及答案
  16. 基本数据类型和引用类型
  17. 学了编程却写出错误代码?程序运行结果与想象不符?当bug出现时该何去何从,别担心,这篇文章统统告诉你!手把手带你调试代码,让bug原形毕露!
  18. SQL唯一键unique
  19. 学校人力资源管理系统——需求分析(一)
  20. MSCI 公布2019年度市场分类评审结果

热门文章

  1. 例1.1-2 Strongbox
  2. 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款
  3. 华为服务器H22H-03的Windows Server2012安装
  4. 2021中国 IoT 物联网平台研究报告 |艾瑞咨询
  5. 谷粒商城项目工具准备
  6. 为什么要使用copy_from_user
  7. DeepMind《星际争霸2》AI碾压人类遭Gary Marcus猛怼:通用智能就是空谈
  8. VmWare虚拟机断电报错各种修复方案
  9. kafka扩容数据自动重分配脚本
  10. 一款免杀远控,马子体积小