• hdoj-3342-Legal or Not(拓扑排序)


    题目链接

     1 /*
     2     Name:hdoj-3342-Legal or Not
     3     Copyright:
     4     Author:
     5     Date: 2018/4/11 15:59:18
     6     Description:
     7         判断是否存在环 
     8 */
     9 #include <iostream>
    10 #include <queue>
    11 #include <vector>
    12 #include <cstring>
    13 #include <algorithm>
    14 using namespace std;
    15 const int MAXN = 1e+5;
    16 int du[MAXN], n , m, L[MAXN];
    17 vector<int>  g[MAXN];
    18 bool topsort() {
    19     memset(du, 0, sizeof(du));
    20     for (int i=0; i<n; i++) {
    21         for (int j=0; j<g[i].size(); j++) {
    22             du[g[i][j]]++; 
    23         }
    24     }
    25     int tot = 0;
    26     queue<int> Q;
    27     for (int i=0; i<n; i++) {
    28         if (!du[i]) {
    29             Q.push(i);
    30         }
    31     }
    32     while (!Q.empty()) {
    33         int x = Q.front();
    34         Q.pop();
    35         L[tot++] = x;
    36         for (int j=0; j<g[x].size(); j++) {
    37             int t = g[x][j];
    38             du[t]--;
    39             if (!du[t]) {
    40                 Q.push(t);
    41             }
    42         } 
    43     }
    44     if (tot == n) return 1;
    45     return 0;
    46 } 
    47 int main()
    48 {
    49     while (cin>>n>>m && (m || n)) {
    50         memset(L, 0, sizeof(L));
    51         memset(g, 0, sizeof(g));
    52         for (int i=0; i<m; i++) {
    53             int a, b;
    54             cin>>a>>b;
    55             g[a].push_back(b);
    56         }
    57         if (topsort() == 1) cout<<"YES"<<endl;
    58         else cout<<"NO"<<endl;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    Centos下安装部署redis
    mysql 事务操作
    python 基础杂货铺
    6、Django 第三方工具
    5、Django
    4、django 模板
    RPC框架--missian框架
    jvm详情——7、jvm调优基本配置、方案
    jvm详情——6、堆大小设置简单说明
    jvm详情——5、选择合适的垃圾收集算法
  • 原文地址:https://www.cnblogs.com/slothrbk/p/8796736.html
Copyright © 2020-2023  润新知