timus 1022 Genealogical Tree(拓扑排序)
Genealogical Tree
Memory limit: 64 MB
Background
system of Martians’ blood relations is confusing enough. Actually,
Martians bud when they want and where they want. They gather together in
different groups, so that a Martian can have one parent as well as ten.
Nobody will be surprised by a hundred of children. Martians have got
used to this and their style of life seems to them natural.
in the Planetary Council the confusing genealogical system leads to
some embarrassment. There meet the worthiest of Martians, and therefore
in order to offend nobody in all of the discussions it is used first to
give the floor to the old Martians, than to the younger ones and only
than to the most young childless assessors. However, the maintenance of
this order really is not a trivial task. Not always Martian knows all of
his parents (and there’s nothing to tell about his grandparents!). But
if by a mistake first speak a grandson and only than his young appearing
great-grandfather, this is a real scandal.
Problem
task is to write a program, which would define once and for all, an
order that would guarantee that every member of the Council takes the
floor earlier than each of his descendants.
Input
≤ 100 — a number of members of the Martian Planetary Council. According
to the centuries-old tradition members of the Council are enumerated
with integers from 1 up to N. Further, there are exactly N lines, moreover, the i-th line contains a list of i-th
member’s children. The list of children is a sequence of serial numbers
of children in a arbitrary order separated by spaces. The list of
children may be empty. The list (even if it is empty) ends with 0.
Output
standard output should contain in its only line a sequence of speakers’
numbers, separated by spaces. If several sequences satisfy the
conditions of the problem, you are to write to the standard output any
of them. At least one such sequence always exists.
Sample
| input | output |
|---|---|
5 |
2 4 5 3 1 |
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define inf 10000000
#define mod 10000
typedef long long ll;
using namespace std;
const int N=;
const int M=;
int power(int a,int b,int c){int ans=;while(b){if(b%==){ans=(ans*a)%c;b--;}b/=;a=a*a%c;}return ans;}
int in[N],vis[N];
int n,m,k;
vector<int>vec[N];
void dfs(int x)
{
printf("%d ",x);
int f=;
vis[x]=;
for(int i=;i<vec[x].size();i++){
int v=vec[x][i];
if(in[v])in[v]--;
}
for(int i=;i<=n;i++)if(!in[i]&&!vis[i])f=,dfs(i);
if(!f) return;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
while(~scanf("%d",&m)&&m){
in[m]++;
vec[i].push_back(m);
}
}
for(int i=;i<=n;i++){
if(!in[i]&&!vis[i]){
dfs(i);
}
}
printf("\n");
return ;
}
timus 1022 Genealogical Tree(拓扑排序)的更多相关文章
- POJ2367 Genealogical tree (拓扑排序)
裸拓扑排序. 拓扑排序 用一个队列实现,先把入度为0的点放入队列.然后考虑不断在图中删除队列中的点,每次删除一个点会产生一些新的入度为0的点.把这些点插入队列. 注意:有向无环图 g[] : g[i] ...
- POJ 2367 Genealogical tree 拓扑排序入门题
Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8003 Accepted: 5184 ...
- Poj 2367 Genealogical tree(拓扑排序)
题目:火星人的血缘关系,简单拓扑排序.很久没用邻接表了,这里复习一下. import java.util.Scanner; class edge { int val; edge next; } pub ...
- [poj2367]Genealogical tree_拓扑排序
Genealogical tree poj-2367 题目大意:给你一个n个点关系网,求任意一个满足这个关系网的序列,使得前者是后者的上级. 注释:1<=n<=100. 想法:刚刚学习to ...
- 1022. Genealogical Tree(topo)
1022 简单拓扑 不能直接dfs 可能有不联通的 #include <iostream> #include<cstdio> #include<cstring> # ...
- POJ 2367 Genealogical tree 拓扑题解
一条标准的拓扑题解. 我这里的做法就是: 保存单亲节点作为邻接表的邻接点,这样就非常方便能够查找到那些点是没有单亲的节点,那么就能够输出该节点了. 详细实现的方法有非常多种的,比方记录每一个节点的入度 ...
- POJ 2367:Genealogical tree(拓扑排序模板)
Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7285 Accepted: 4704 ...
- poj 2367 Genealogical tree【拓扑排序输出可行解】
Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3674 Accepted: 2445 ...
- 【拓扑排序】Genealogical tree
[POJ2367]Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5696 Accep ...
随机推荐
- MJPhotoBrowser 两个bug:回到小图模式时会闪动&大图太靠近底部
最近项目需要写网络的相片视频浏览的库, 没时间重写,使用了MJPhotoBrowser,里面的一些bug 和解决写在下面 1.-[MJPhotoLoadingView setProgress:]: m ...
- VMware Workstation 10.0.0.1295980 CN
从V10版本开始,VMware Workstation 官方自带简体中文了,以后大家不需要汉化啦! Winner of more than 50 industry awards, VMware Wor ...
- Twitter CEO:有望进军中国 不会改变原则
新浪科技讯 8月12日下午消息,据台湾“中央社”报道,Twitter CEO科斯特洛(Dick Costolo)日前接受<日经新闻>专访时指出,Twitter有望进军中国大陆,科斯特洛表示 ...
- LOGISTIC REGRESSION
In logistic regression we learn a family of functions
- ios上传应用后,审核流程完成前(reveiw)修改了程序内容,如何上传替换
其实挺简单,只需要更改下version和build版本 看图说话就可以.我的程序之前版的版本设置 修改bug之后的设置: 然后重新打包就好了,提示打包成功后,在itunesconnect查看发现 选中 ...
- ALAssets的两种用法
一: ALAssetsGroupEnumerationResultsBlock resultsBlock = ^(ALAsset *result, NSUInteger index, BOOL *st ...
- Form表单的操作
form对象 <form name=“form1” action=“login.php” method=“post”></form> form对象的属性 name:表单名称 m ...
- BZOJ 2292 永远挑战
最短路. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm&g ...
- HTML的表单
HTML表单 <!-- <form></form>标签对用来创建一个表单,即定义表单的开始和结束位置,<form>表单具有下面等属性 1.action属性用来 ...
- Objective-C determine data network type of the iOS device
Im on an application that receive data from server, the problem is when user connect to cellular dat ...