• F


     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 const int INF = 0x3f3f3f3f;
     7 const int maxn = 50005;
     8 int n, w, m, k, dis[maxn];
     9 
    10 struct node
    11 {
    12     int u, v, w;
    13     node() {}
    14     node(int uu, int vv, int ww): u(uu), v(vv), w(ww) {}
    15 }edge[maxn];
    16 
    17 bool Bellman_Ford(int s)
    18 {
    19     for(int i = 1; i <= n; i++) dis[i] = INF;
    20     dis[s] = 0;
    21     for(int i = 0; i < n; i++)
    22     {
    23         int flag = 1;
    24         for(int j = 0; j < k; j++)
    25         {
    26             int u = edge[j].u;
    27             int v = edge[j].v;
    28             int w = edge[j].w;
    29             if(dis[u] + w < dis[v])
    30             {
    31                 flag = 0;
    32                 dis[v] = dis[u]+w;
    33                 if(i == n-1)
    34                     return true;
    35                 //如果循环n-1次还能缩,就存在负环
    36             }
    37         }
    38         if(flag) return false;
    39     }
    40     return false;
    41 }
    42 
    43 int main()
    44 {
    45     ios::sync_with_stdio(false);
    46     cin.tie(0);
    47 
    48     int t;
    49     cin >> t;
    50     while(t--)
    51     {
    52         k = 0;
    53         scanf("%d%d%d", &n, &m, &w);
    54         for(int i = 1; i <= m+w; i++)
    55         {
    56             int u, v, w;
    57             scanf("%d%d%d", &u, &v, &w);
    58             if(i <= m)
    59             {
    60                 edge[k++] = node(u, v, w);
    61                 edge[k++] = node(v, u, w);
    62             }
    63             else edge[k++] = node(u, v, -w);
    64         }
    65         if(Bellman_Ford(1)){
    66             cout << "YES" << endl;
    67         }
    68         else
    69             cout << "NO" << endl;
    70     }
    71     return 0;
    72 }
  • 相关阅读:
    007 连接
    006 group by having
    005 运算null 排序 模糊查询 聚合函数
    004 列、distinct、between、in、null
    003 约束和关系
    002 表的概念操作
    5-04用Sql语句创建表
    5-03使用视图创建表
    5-01表达基本概念
    4-04数据库的备份与还原
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/9019240.html
Copyright © 2020-2023  润新知