拓扑排序 uva10305
来源:互联网 发布:ubuntu增加根目录空间 编辑:程序博客网 时间:2024/05/22 16:00
/*#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<string>#include<stack>#include<queue>#include<vector>#include<map>#include<set>#include<iostream>#define LL long long#define INF 0x3f3f3f3fusing namespace std;const int N=1000000009;int G[105][105]= {0};int n,t,c[105]={0},topo[105]={0};bool dfs(int u){ c[u]=-1; for(int v=1;v<=n;v++) if(G[u][v]){ if(c[v]<0) return false; else if(!c[v]&&!dfs(v)) return false; } c[u]=1;topo[--t]=u; return true;}bool toposort(){ t=n; memset(c,0,sizeof(c)); for(int u=1;u<=n;u++) if(!c[u]) if(!dfs(u)) return false; return true;}int main(){ int m,u,v; while(scanf("%d%d",&n,&m)&&n&&m) { memset(G,0,sizeof(G)); for(int i=0; i<m; i++) { scanf("%d%d",&u,&v); G[u][v]=1; } if(toposort()) { for(int i=0;i<n-1;i++) printf("%d ",topo[i]); printf("%d\n",topo[n-1]); } } return 0;}*/#include <stdio.h>#include <string.h>int task[102][102];int vis[102];int n,m;int k;int topo[102];int dfs(int u);void toposort(void);int main(){ int i; int a,b; while(scanf("%d%d",&n,&m)==2) { if(!n&&!m) break; memset(task,0,sizeof(task)); memset(vis,0,sizeof(vis)); for(i=0;i<m;i++) { scanf("%d%d",&a,&b); task[a][b]=1; } k=n-1; toposort(); for(i=0;i<n-1;i++) printf("%d ",topo[i]); printf("%d\n",topo[n-1]); } return 0;}int dfs(int u){ int i; vis[u]=-1; for(i=1;i<=n;i++) { if(task[u][i]) { if(vis[i]==-1) return 0; else if(!vis[i]&&!dfs(i)) return 0; } } vis[u]=1; topo[k--]=u; return 1;}void toposort(){ int i; for(i=1;i<=n;i++) { if(!vis[i]) { dfs(i); } }}
0 0
- UVa10305拓扑排序
- 拓扑排序 uva10305
- UVA10305拓扑排序
- uva10305 拓扑排序
- uva10305-拓扑排序
- uva10305 拓扑排序
- Uva10305-拓扑排序
- uva10305 拓扑排序经典dfs
- UVA10305 Ordering Tasks 拓扑排序
- Uva10305 Ordering Tasks(拓扑排序)
- UVA10305 Ordering Tasks(拓扑排序)
- uva10305(拓扑排序dfs)
- UVA10305 Ordering Tasks【DFS】【拓扑排序】
- UVa10305 - Ordering Tasks拓扑排序 天书啊
- Uva10305 - Ordering Tasks(拓扑排序经典例题)
- uva10305- Ordering Tasks(拓扑排序)
- uva10305(拓扑
- uva10305--拓扑
- 【Java工兵】移位运算
- Eclipse快捷键
- A Summary of Current Machine Learning Frameworks
- ActiveMQ基本介绍
- hdu 2328 Corporate Identity (后缀数组应用)
- 拓扑排序 uva10305
- android网络请求的几种方式,android怎么请求服务器资源
- PHP连接MYSQL
- CSS高级特性
- 【测试】白盒测试
- 开通博客目的
- 【机器学习基础】线性可分支持向量机
- 欢迎使用CSDN-markdown编辑器
- Castle学习系列(一)---ActiveRecord基础环境配置