uva 558 - Wormholes

简介: 点击打开链接uva 558 1思路:利用Bellman_Ford来判断是否存在回环 2分析:在利用Bellman_Fordde 时候如果做了n-1次的松弛步以后还能更新dis数组,那么说明原来的图中存在环,那么最短路就是不存在的。

点击打开链接uva 558


1思路:利用Bellman_Ford来判断是否存在回环

2分析:在利用Bellman_Fordde 时候如果做了n-1次的松弛步以后还能更新dis数组,那么说明原来的图中存在环,那么最短路就是不存在的。


代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 2010
#define INF 0xFFFFFFF

int t , n , m;
int dis[MAXN];
struct Edge{
   int x;
   int y;
   int value;
}e[MAXN];

bool judge(){
     for(int i = 0 ; i < m ; i++){
        if(dis[e[i].y] > dis[e[i].x] + e[i].value)
          return false;
     }
     return true;
}

void Bellman_Ford(){
     dis[0] = 0;
     for(int i = 1 ; i < n ; i++)
        dis[i] = INF;
     for(int i = 0 ; i < n ; i++){
        for(int j = 0 ; j < m ; j++){
           if(dis[e[j].y] > dis[e[j].x] + e[j].value)
             dis[e[j].y] = dis[e[j].x] + e[j].value;
        }
     }
     if(judge())
       printf("not possible\n");
     else
       printf("possible\n");
}

int main(){
   scanf("%d", &t);
   while(t--){
      scanf("%d%d" , &n , &m);
      for(int i = 0 ; i < m ; i++)
         scanf("%d%d%d" , &e[i].x , &e[i].y , &e[i].value);
      Bellman_Ford();             
   }
   return 0;
}





目录
相关文章
|
关系型数据库 MySQL Linux
Linux下安装禅道
禅道的详细安装步骤来这里吧
237 1
|
关系型数据库 MySQL 数据库连接
阿里云数据库怎么连接
阿里云数据库怎么连接
2494 1
|
网络安全 开发工具 数据安全/隐私保护
Git——基本操作及代码提交
Git——基本操作及代码提交
273 0
Git——基本操作及代码提交
|
存储 编译器
【C】指针——知识点大全(详细,简洁,含例题)(一)
【C】指针——知识点大全(详细,简洁,含例题)
|
容器
零元学Expression Blend 4 - Chapter 10 用实例了解布局容器系列-「StackPanel」
原文:零元学Expression Blend 4 - Chapter 10 用实例了解布局容器系列-「StackPanel」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局容器是Blend 4 里的乖宝宝-「StackPanel」;及加码赠送「ScrollViewer」的运用。
1167 0
|
22小时前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
10天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~