拓扑排序
来源:互联网 发布:淘宝联盟怎么买东西 编辑:程序博客网 时间:2024/06/06 08:31
#include<algorithm>#include<cstdio>#include<iostream>#include<memory.h>#define maxn 3001int c[maxn],topo[maxn],g[maxn][maxn],t,n,m,v;bool dfs(int u){ c[u]=-1;//标记为-1,表示正在访问(即dfs(u)在栈帧中,尚未返回) for(int v=1;v<=n;v++) if(g[u][v]==1) { if(c[v]==-1) return false; //判断是否为DAG,如果不是则退出 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]&&!dfs(u)) return false;return true;}int main(){scanf("%d%d",&n,&m);for (int i=1;i<=m;i++) {int x,y;scanf("%d%d",&x,&y);g[x][y]=1;}if (!toposort()) printf("No Topology\n"); else for (int i=1;i<=n;i++) printf("%d ",topo[i]); printf("\n");return 0;}
0 0
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 【拓扑排序】
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 如何在程序中动态设置墙纸
- asp.net开发中利用jquery来实现滚动下拉标题浮动固定显示
- Python中subprocess学习
- Android Studio启动过程中SDK Manager连接错误解决
- 小兔子跳到10楼有多少种方法?
- 拓扑排序
- 正则表达式在IOS中的应用及IOS中三种正则表达式的使用与比较
- 创业公司工程师应该掌握的可伸缩Web开发技术
- hibernate中的查询小结
- GraphicsMagick 安装后不支持jpg及png格式图片的解决办法
- java 异常处理机制
- 每个程序员都该知道的10大编程格言
- Atitit.分区对索引的影响 分区索引和全局索引 attilax总结
- Monte Carlo intoduce