zoukankan      html  css  js  c++  java
  • UVa 10305 给任务排序

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

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

     1 #include<iostream>
     2 #include<cstring>
     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         else
    47             printf("No
    ");
    48     }
    49     return 0;
    50 }

    2016-12-11   10:42:03

  • 相关阅读:
    项目架构工具选择
    idea 引入本地jar包
    java 二维/三维/多维数组
    Windows 远程连接
    SQL SERVER 本地同步数据到远程数据服务器
    利用sp_addlinkedserver实现远程数据库链接
    ORACLE 手动添加时间分区
    ORACLE 时间段
    shiro异常简述
    kvm虚拟机克隆
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6159138.html
Copyright © 2011-2022 走看看