博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10305 给任务排序
阅读量:4329 次
发布时间:2019-06-06

本文共 1292 字,大约阅读时间需要 4 分钟。

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1246

题意就是最普通的拓扑排序,输出可能的排序结果。

1 #include
2 #include
3 using namespace std; 4 const int maxn = 1000; 5 6 int n, m, cuv[maxn][maxn], c[maxn], topo[maxn], t; 7 8 bool dfs(int u) 9 {10 c[u] = -1; 11 for (int v = 1; v<=n; v++) if (cuv[u][v])12 {13 if (c[v]<0) return false; //存在有向环。 14 else if (!c[v] && !dfs(v)) return false;15 }16 c[u] = 1; topo[--t] = u;17 return true;18 }19 20 bool toposort()21 {22 t = n;23 memset(c, 0, sizeof(c));24 for (int u = 1; u <= n; u++) if (!c[u])25 if (!dfs(u)) return false;26 return true;27 }28 29 int main()30 {31 while (cin >> n >> m && n)32 {33 memset(cuv, 0, sizeof(cuv));34 for (int i = 1; i <= m; i++)35 {36 int u, v;37 cin >> u >> v;38 cuv[u][v] = 1;39 }40 if (toposort())41 {42 for (int i = 0; i < n - 1; i++)43 cout << topo[i] << " ";44 cout << topo[n - 1] << endl;45 }46 else47 printf("No\n");48 }49 return 0;50 }

2016-12-11   10:42:03

转载于:https://www.cnblogs.com/zyb993963526/p/6159138.html

你可能感兴趣的文章
Linux下Nginx安装
查看>>
LVM扩容之xfs文件系统
查看>>
Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
查看>>
代码片段收集
查看>>
vue-cli3创建项目时报错
查看>>
输入1-53周,输出1-53周的开始时间和结束时间
查看>>
实验二
查看>>
shell——按指定列排序
查看>>
crash 收集
查看>>
507 LOJ 「LibreOJ NOI Round #1」接竹竿
查看>>
UI基础--烟花动画
查看>>
2018. 2.4 Java中集合嵌套集合的练习
查看>>
精通ASP.NET Web程序测试
查看>>
vue 根据不同属性 设置背景
查看>>
51Nod1601 完全图的最小生成树计数 Trie Prufer编码
查看>>
Codeforces 1110D. Jongmah 动态规划
查看>>
android驱动在win10系统上安装的心酸历程
查看>>
优雅的程序员
查看>>
oracle之三 自动任务调度
查看>>
Android dex分包方案
查看>>