家谱树
【问题描述】
    有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
    给出每个人的孩子的信息。
    输出一个序列,使得每个人的后辈都比那个人后列出。
【输入格式】
    第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

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Maxn 101 using namespace std; struct zhan{
int z[Maxn],tops;
void add(int x) //进栈操作
{
z[++tops]=x;
}
int duitou() //返回队头元素
{
return z[tops];
}
void shan() //删除队头元素
{
tops--;
}
bool kong() //检验栈是否为空
{
return tops == ? : ;
}
zhan ()//构造函数(与结构体同名,没有返回值,用于初始化)
{
tops=;
}
}q; int n,temp,qwq;
int du[Maxn],chu[Maxn];
int gx[Maxn][Maxn]; int main()
{
char s;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
while(cin>>s)
{
if(s=='') break;
else
{
chu[i]++; //表示i有chu[i]条出度
du[s-'']++; //s入度++
gx[i][chu[i]]=s-''; //说明i的第几(chu[i])条出度为s
}
}
}
for(int i=;i<=n;i++)
{
if(!du[i]) q.add(i); //如果入度为0,进栈
}
do
{
temp=q.duitou();
q.shan();
cout<<temp<<" ";
for(int j=;j<=chu[temp];j++)
{
du[gx[temp][j]]--; //与刚出栈的'temp'有边的入度--
if(!du[gx[temp][j]]) q.add(gx[temp][j]);//如果这个元素的入度为0,进栈
}
}while(!q.kong()); //终止条件
return ;
}

家谱树 x的更多相关文章

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

    1.本文更新日期:2018/05/20 , 亲测可用,在原有基础上进行增强和 详细化 . 2.面包屑导航 和 子孙树 效果图如下: 3.代码: <?php // 无限级分类中,查家谱树(面包屑导 ...

  2. 洛谷P1472 奶牛家谱 Cow Pedigrees

    P1472 奶牛家谱 Cow Pedigrees 102通过 193提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 农民约翰准备 ...

  3. 【USACO 2.3.2】奶牛家谱

    [题目描述] 农民约翰准备购买一群新奶牛.在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些二叉 ...

  4. 【dp】奶牛家谱 Cow Pedigrees

    令人窒息的奶牛题 题目描述 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < ...

  5. [CSP-S模拟测试]:树(树上上升序列+主席树+线段树)

    题目传送门(内部题78) 输入格式 第一行输入两个整数$n,q$,表示节点数和询问数. 第二行输入$n$个整数$w_i$,表示第$i$个点的智商. 第三行至第$n+1$行每行输入两个数$x,y$,表示 ...

  6. C++ 数据结构 3:树和二叉树

    1 树 1.1 定义 由一个或多个(n ≥ 0)结点组成的有限集合 T,有且仅有一个结点称为根(root),当 n > 1 时,其余的结点分为 m (m ≥ 0)个互不相交的有限集合T1,T2, ...

  7. JavaScript之DOM、DOM树

    一 DOM JavaScript操作网页的接口,全称为"文档对象模型"(Document Object Model). 有这几个概念:文档.元素.节点 整个文档是一个文档节点 每个 ...

  8. 《转载》PAT 习题

    博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...

  9. Javascript初学篇章_7(DOM)

    DOM 文档对象模型DOM (document object model) 文档对象模型,它定义了操作文档对象的接口.DOM 把一份html文档表示为一棵家谱树,使用parent(父), child( ...

随机推荐

  1. (4.15)mysql备份还原——物理备份之XtraBackup的下载与安装

    关键词:mysql物理备份,XtraBackup,XtraBackup安装,XtraBackup下载 实践链接:https://www.cnblogs.com/gered/p/11147193.htm ...

  2. hive自定义udaf函数

    自定义udaf函数的代码框架 //首先继承一个类AbstractGenericUDAFResolver,然后实现里面的getevaluate方法 public GenericUDAFEvaluator ...

  3. CSP-S 2019 杂记

    CSP-S 2019 游记 update 2019.11.18 考完后的第一感受 update 2019.11.24 我校某优秀学子把全SD的选手程序全测了一遍(太狠了,于是就知道了大概的惨淡成绩,大 ...

  4. spark教程(11)-sparkSQL 数据抽象

    数据抽象 sparkSQL 的数据抽象是 DataFrame,df 相当于表格,它的每一行是一条信息,形成了一个 Row Row 它是 sparkSQL 的一个抽象,用于表示一行数据,从表现形式上看, ...

  5. 你写的 Java 代码是如何一步步输出结果的? (转)

    出处:  一步步解析java执行内幕 对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写J ...

  6. MySQL 必备工具使用的6个锦囊妙计!

    这款工具是 MySQL 一个重要分支 percona 的,名称叫做 percona-toolkit(一把锋利的瑞士军刀),它呢是一组命令的集合.今儿给大家介绍几个我们在生产环境中最长用到的. 工具包的 ...

  7. Centos7:mysql5.6安装,配置及使用(RPM方式)

    1.首先安装好jdk环境,本机所用环境为jdk1.8 2.卸载MariaDB(Centos7自带)与Mysql 2.1卸载:MariaDB #rpm -qa | grep -i mariadb //查 ...

  8. css动画之旋转翻牌效果

    1.我们先设置两个盒子大小,颜色等等,然后定位重叠在一起,最后再进行动画设置 例子如下: <style> .box { height: 300px; width: 300px; posit ...

  9. js介绍及语法结构

    javaScript它是一门动态的,弱类型的,解释型面向Web的编程语言.虽然名字里有Java但其它与Java无关.它可以用来增强页面动态效果,实现页面与用户之间的实时,动态交互. javascrip ...

  10. vue-复制功能插件-兼容性最好的插件

    记录给自己用,不进同一次坑: https://github.com/Inndy/vue-clipboard2