方法一:
采用二位数组的形式(也可以用邻接表形式)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
const int maxx=1e3+10;
const int inf=0x3f3f3f3f;
int n;
int indegree[maxx];
int vis[maxx][maxx];
int flag[maxx];
int a[maxx][maxx];
int q[maxx];
int main(){while(cin>>n){queue<int>Q;memset(q,0,sizeof(q));memset(vis,0,sizeof(vis));memset(a,0,sizeof(a));memset(indegree,0,sizeof(indegree));memset(flag,0,sizeof(flag));for(int i=1;i<=n;i++){int index;int k=0;cin>>index;while(index!=0){indegree[index]++;vis[i][index]=1;cin>>index;}flag[i]=k;}for(int i=1;i<=n;i++){if(indegree[i]==0){Q.push(i);}}while(!Q.empty()){int u=Q.front();Q.pop();cout<<u<<" ";for(int i=1;i<=n;i++){if(vis[u][i]==1){indegree[i]--;if(indegree[i]==0){Q.push(i);}}}}cout<<endl;}return 0;
}
方法二:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
const int maxx=1e3+10;
const int inf=0x3f3f3f3f;
int n;
int indegree[maxx];
int vis[maxx][maxx];
int flag[maxx];
int a[maxx][maxx];
int q[maxx];
void TopoSort(int n) {int c=1,index,m;  for(int i=1;i<=n;i++){m=0;for(int j=1;j<=n;j++){if(indegree[j]==0){m++; index=j; }  } q[c++]=index;   indegree[index]=-1;for(int j=1;j<=n;j++){if(vis[index][j]==1){indegree[j]--;}}}
}
int main(){while(cin>>n){queue<int>Q;memset(q,0,sizeof(q));memset(vis,0,sizeof(vis));memset(a,0,sizeof(a));memset(indegree,0,sizeof(indegree));memset(flag,0,sizeof(flag));for(int i=1;i<=n;i++){int index;int k=0;cin>>index;while(index!=0){indegree[index]++;vis[i][index]=1;cin>>index;}flag[i]=k;}TopoSort(n);for(int i=1;i<=n;i++){cout<<q[i]<<" ";}cout<<endl;}return 0;
}

poj2367拓扑排序模版题相关推荐

  1. HDU4857拓扑排序模版题

    方法一: #include<iostream> #include<algorithm> #include<cstring> #include<cmath> ...

  2. HDU5154拓扑排序模版题

    方法一: 采用邻接表的形式: #include<iostream> #include<algorithm> #include<cstring> #include&l ...

  3. HDU1285拓扑排序模版题

    方法一: #include<iostream> #include<algorithm> #include<cstring> #include<cmath> ...

  4. 数据结构-图论-拓扑排序模板题(hdu3342)(poj1270)(hdu4857)

    dfs与bfs的很直接的应用就是拓扑排序. 拓扑排序如果用数组来模拟链表进行操作,既解决了稀疏图的空间问题,又解决了用链表进行操作麻烦的问题 但是拓扑排序并不是数字大小之间的排序,而是某些事情之间的顺 ...

  5. poj2367——拓扑排序

    如果懂拓扑排序的话,这题挺水的. 想了解拓扑排序点击:拓扑排序传送 贴代码: //Memory 184k Time 0ms#include<iostream> #include<ve ...

  6. 拓扑排序基础题——排序

    题目 由于公司在2013年的销售业务成绩优秀,公司总经理心情大好,决定给每位员工发奖金.公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少.于是总经理下令召开 m 方会谈.每位参加会谈的代 ...

  7. 拓扑排序三题(菜肴制作杂物最大食物链计数)

    目录 一.[HNOI]2015菜肴制作 二.洛谷1113杂物 代码一: 代码二: 三.最大食物链计数[洛谷4017] DAG:有向无环图 图的建立很重要 一.[HNOI]2015菜肴制作 传送门1 思 ...

  8. HDU 4857 逃生 拓扑排序好题 第一次做CLJ出的题

    逃生 Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b ...

  9. POJ - 1094 Sorting It All Out(拓扑排序)

    https://vjudge.net/problem/POJ-1094 题意 对于N个大写字母,给定它们的一些关系,要求判断出经过多少个关系之后可以确定它们的排序或者排序存在冲突,或者所有的偏序关系用 ...

最新文章

  1. 当了十年 IT 程序员,我转型做自动驾驶开发的这五年”_《新程序员》编辑部的博客-CSDN博客
  2. ipython官网_IPython Notebook快速搭建
  3. 002_JDK的Comparable接口
  4. Kali 找回root 密码的操作步骤
  5. java吧王者_java单排上王者!(一) java内存
  6. 部署在ABAP Netweaver上的UI5应用,UI5库那些JavaScript的具体位置
  7. Redis源码解析:21sentinel(二)定期发送消息、检测主观下线
  8. 电脑充不满电一直95_居民:小区充电桩为何充不满电?有关部门这样回应
  9. ObjC学习8-重头戏来了!Foundation框架
  10. 一份清单:所有可以放进head标签的元素
  11. C#可空类型(Nullable)
  12. Gartner VPT技术原理 ——Tenable:专注于构成风险最大的漏洞
  13. 解决移动端特别是ios滑动卡屏 滑动卡顿
  14. Burp Suite使用介绍(一)
  15. linux给分区扩容
  16. JS如何调用Android原生方法
  17. numpy函数hstack,vstack,dstack简介
  18. 如何用微信朋友圈引起客户注意?
  19. Dynamics 365 WebApi 常用语句-字段
  20. ios 调整麦克风音量_ios 调整麦克风音量_如何在ios 7中获得麦克风音量?

热门文章

  1. SpringBoot与SpringMVC的区别是什么?
  2. 尚硅谷学习:createElement 方法笔记
  3. C语言,二维数组的逗号!_只愿与一人十指紧扣_新浪博客
  4. 使用计算机视觉算法检测钢板中的焊接缺陷
  5. Pytorch中的5个非常有用的张量操作
  6. U平方Net:深入使用嵌套的U型结构进行显著目标检测
  7. Lync 手机客户端登录过程
  8. SpringMVC,针对不支持PUT、DELETE提交的游览器处理方式
  9. 2014年:这些词都快被玩坏了
  10. win7上安装theano keras深度学习框架