Acwing 1191. 家谱树
题目描述:
有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
给出每个人的孩子的信息。
输出一个序列,使得每个人的孩子都比那个人后列出。
输入格式
第 1 行一个整数 n,表示家族的人数;
接下来 n 行,第 i 行描述第 i 个人的孩子;
每行最后是 0 表示描述完毕。
每个人的编号从 1 到 n。
输出格式
输出一个序列,使得每个人的孩子都比那个人后列出;
数据保证一定有解,如果有多解输出任意一解。
数据范围
1≤n≤100
输入样例:
5
0
4 5 1 0
1 0
5 3 0
3 0
输出样例:
2 4 5 3 1
思路:
拓扑排序
代码:
#include <iostream>
#include<queue>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=1e6+10,M=1e6+10;
int e[M],h[N],w[M],ne[M],idx;
void add(int a, int b) // 添加一条边a->b
{e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
int din[N];
int main()
{memset(h, -1, sizeof h);int n;cin>>n;for(int i=1;i<=n;i++){int t;while(cin>>t){if(t==0){break;}add(i,t);din[t]++;}}queue<int>q;for(int i=1;i<=n;i++){if(!din[i]){q.push(i);}}while(!q.empty()){int t=q.front();q.pop();cout<<t<<' ';for(int i=h[t];i!=-1;i=ne[i]){int j=e[i];din[j]--;if(!din[j]){q.push(j);}}}
}
Acwing 1191. 家谱树相关推荐
- AcWing 1191. 家谱树 题解(拓扑排序)
AcWing 1191. 家谱树 拓扑排序:建立一个队列,遍历所有点,将度数为1的点全部加入队列中,之后队内元素依次出队,对出队的点遍历所有临边,将这些临点的入度–,如果临点的入度为0,则加入队列中, ...
- Acwing 1191. 家谱树 (topsort
添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=109,M=1e4+10;; int n; int h[N] ...
- 【ACWing】1191. 家谱树
题目地址: https://www.acwing.com/problem/content/1193/ 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系.给出每个人的孩子的信息.输出一个序列,使 ...
- 1191 家谱树(拓扑排序)
1. 问题描述: 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系.给出每个人的孩子的信息.输出一个序列,使得每个人的孩子都比那个人后列出. 输入格式 第 1 行一个整数 n,表示家族的人数: ...
- php递归面包屑,php可应用于面包屑导航的递归寻找家谱树实现方法
本文实例讲述了php可应用于面包屑导航的递归寻找家谱树实现方法.分享给大家供大家参考.具体实现方法如下:<?phpecho " ";$area = array(array(& ...
- Php数组面包屑导航,php可应用于面包屑导航的迭代寻找家谱树实现方法
php是通过定义类来实现迭代器接口来构造迭代器,通过yield构造迭代器可以提高性能并节省系统开销,下面就跟着爱站技术频道小编的步伐来学习php可应用于面包屑导航的迭代寻找家谱树实现方法吧. 具体实现 ...
- java家谱树_青锋家谱系统-基于springboot+orgtree的青锋家谱树管理系统
gen 青锋家谱系统:基于springboot架构的家谱项目系统 项目介绍 基于springboot.orgtree的家谱树管理系统,将纸质版的家谱进行电子化.信息化,建立家族的家谱血脉联系. [青锋 ...
- 家谱树 (并查集拓扑排序)
目录 拓扑排序 Kahn. 最后附上Kahn的代码: 链式前向星做法: 其次是我用Kahn做的家谱树的代码(矩阵): 其次是我用Kahn做的家谱树的代码(链式前向星): [题目描述] 有个人的家族很大 ...
- php子孙树,递归 迭代 得到家谱树 子孙树
$arr=array( array('id'=>'1','name'=>'吉林','parent'=>0), array('id'=>'2','name'=>'北京',' ...
最新文章
- PHP的抽象类、接口的区别和选择
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- WF4.0入门系列1——创建一个简单的工作流
- html如何添加关闭按钮,大神你好,请问怎么在以下代码的div中添加一个关闭按钮?...
- 如何在 Spring 生态中玩转 RocketMQ?
- linux上的ds命令,Linux--容器命令
- [js高手之路]从原型链开始图解继承到组合继承的产生
- 开始学习VS2008+.net3.5咯 :)
- PHP超级配置模块--PHP4,PHP5,module,cgi任你玩转--应用于Apache
- SGU 160.Magic Multiplying Machine
- 要多大内存才满足_佛龛的尺寸要多大?
- 不一样的结果,不一样的人生
- Qt实践录:常见控件操作示例1
- cuda安装和卸载(ubuntu)
- UVA11038 How Many O's?题解
- 安卓开源项目周报0301
- 【typecho插件】typecho邮箱插件LoveXiaozhou是一款Typecho邮件通知类插件、小周
- 水星无线路由器设置虚拟服务器,水星无线路由器桥接设置桥接(图文详解)
- 我的工程师爸爸 - 音频应用DIY系列之三:汤姆猫
- 使用重力感应传感器和Arduino的手机控制机器人车
热门文章
- 考研政治——马克思三大定律之否定之否定
- 网页保存mhtml格式
- 手Q游戏中心的个性化推荐实战 | CSDN博文精选
- VS code 快速配置C语言编写环境
- 国内常用公共DNS服务器、各省运营商DNS服务器汇总
- web课程设计网页规划与设计~在线阅读小说网页共6个页面(HTML+CSS+JavaScript+Bootstrap)...
- 海康ISAPI透传ftp
- Flutter自动获取焦点
- xutils的bitmap的深度使用
- 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。