zoukankan      html  css  js  c++  java
  • E

     1 //bellman_ford判断负环
     2 #include <vector>
     3 #include <iostream>
     4 #include <cstring>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 const int maxn = 200 + 5;
     9 
    10 int n,m;
    11 double v;
    12 struct node{
    13     int u, v;
    14     double r,c;
    15 }p[maxn];
    16 
    17 double dis[maxn];
    18 int cnt;
    19 
    20 bool bellman_ford(int x){
    21     memset(dis, 0, sizeof(dis));
    22     dis[x] = v;
    23     for(int i = 1;i < n;i++){
    24         bool flag = true;
    25         for(int j = 0;j < cnt;j++){
    26             int aa = p[j].u;
    27             int bb = p[j].v;
    28             double rr = p[j].r;
    29             double cc = p[j].c;
    30             if(dis[bb] < (dis[aa] - cc)*rr){
    31                 dis[bb] = (dis[aa] - cc)*rr;
    32                 flag = false;
    33             }
    34         }
    35         if(flag)
    36             break;
    37     }
    38 
    39     //判断出现负环
    40     for(int i = 0; i< cnt;i++)
    41         if( dis[p[i].v] < (dis[p[i].u]-p[i].c)*p[i].r)
    42             return true;
    43     return false;
    44 }
    45 
    46 int main(){
    47     int s;
    48     cin >> n >> m >> s >>v;
    49     cnt = 0;
    50     while(m--){
    51         int a, b;
    52         double c1,r1,c2,r2;
    53         cin >> a >> b >> c1 >> r1 >> c2 >> r2;
    54         p[cnt].u = a, p[cnt].v = b, p[cnt].r = c1, p[cnt++].c = r1;
    55         p[cnt].u = b, p[cnt].v = a, p[cnt].r = c2, p[cnt++].c = r2;
    56     }
    57     if(bellman_ford(s))
    58         cout << "YES" << endl;
    59     else
    60         cout << "NO" << endl;
    61 
    62     return 0;
    63 }
  • 相关阅读:
    ABP dynamic API
    SQL语句 还原未知逻辑名称数据库
    SQL 还原数据库
    使用开源项目集锦
    webp性能测评
    js通过继承实现私有函数
    js组合继承和寄生组合式继承比较
    JS中循环绑定遇到的问题及解决方法
    JS学习之事件流
    OpenGL利用模板测试实现不规则裁剪
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/9021673.html
Copyright © 2011-2022 走看看