uva 558 - Wormholes(Bellman Ford判断负环)

时间:2020-11-26 23:05:49

题目链接:558 - Wormholes

题目大意:给出n和m,表示有n个点,然后给出m条边,然后判断给出的有向图中是否存在负环。

解题思路:利用Bellman Ford算法,若进行第n次松弛时,还能更新点的权值,则说明有负环的存在。

#include <stdio.h>
#include <string.h>
#define min(a,b) (a)<(b)?(a):(b)
const int N = 10005;
const int INF = 0x3f3f3f3f; int n, m, flag, d[N];
int x[N], y[N], v[N]; void init() {
scanf("%d%d", &n, &m); for (int i = 0; i < m; i++)
scanf("%d%d%d", &x[i], &y[i], &v[i]);
} void BF() {
flag = 0;
for (int i = 0; i < n; i++) d[i] = INF;
d[0] = 0; for (int k = 1; k < n; k++) {
for (int i = 0; i < m; i++) {
int a = x[i], b = y[i];
if (d[a] < INF)
d[b] = min(d[a] + v[i], d[b]);
}
} for (int i = 0; i < m; i++) {
int a = x[i], b = y[i];
if (d[b] > d[a] + v[i]) {
flag = 1;
return;
}
}
} int main () {
int cas;
scanf("%d", &cas);
while (cas--) {
init();
BF();
printf("%s\n", flag ? "possible" : "not possible");
}
return 0;
}

uva 558 - Wormholes(Bellman Ford判断负环)的更多相关文章

  1. UVA 558&Tab;Wormholes 【SPFA 判负环】

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  2. POJ 3259 Wormholes【bellman&lowbar;ford判断负环——基础入门题】

    链接: http://poj.org/problem?id=3259 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  3. poj 3259 Wormholes【spfa判断负环】

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36729   Accepted: 13444 Descr ...

  4. &lpar;简单&rpar; POJ 3259 Wormholes,SPFA判断负环。

    Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...

  5. poj1860 兑换货币(bellman ford判断正环)

    传送门:点击打开链接 题目大意:一个城市有n种货币,m个货币交换点,你有v的钱,每个交换点只能交换两种货币,(A换B或者B换A),每一次交换都有独特的汇率和手续费,问你存不存在一种换法使原来的钱更多. ...

  6. poj 3259 Wormholes(bellman-ford判断负环)

    题目链接:http://poj.org/problem?id=3259 题目就是问你能否回到原点而且时间还倒回去了.题目中有些路中有单向的虫洞能让时间回到过去 所以只要将虫洞这条边的权值赋为负然后再判 ...

  7. POJ 3259 Wormholes【Bellman&lowbar;ford判断负环】

    题意:给出n个点,m条正权的边,w条负权的边,问是否存在负环 因为Bellman_ford最多松弛n-1次, 因为从起点1终点n最多经过n-2个点,即最多松弛n-1次,如果第n次松弛还能成功的话,则说 ...

  8. bzoj 1715&colon; &lbrack;Usaco2006 Dec&rsqb;Wormholes 虫洞 -- spfa判断负环

    1715: [Usaco2006 Dec]Wormholes 虫洞 Time Limit: 5 Sec  Memory Limit: 64 MB 注意第一次加边是双向边第二次是单向边,并且每次询问前数 ...

  9. UVA 558 SPFA 判断负环

    这个承认自己没看懂题目,一开始以为题意是形成环路之后走一圈不会产生负值就输出,原来就是判断负环,用SPFA很好用,运用队列,在判断负环的时候,用一个数组专门保存某个点的访问次数,超过了N次即可断定有负 ...

随机推荐

  1. H3 BPM产品安装手册(&period;Net版本)

    1         安装说明 1.1    服务器安装必备软件 在使用该工作流软件之前,有以下一些软件是必须安装: l  IIS7.0以上版本(必须): l  .Net Framework 4.5(必 ...

  2. linux 无交互添加用户设置密码

    #!/bin/bash useradd -m test echo " | passwd --stdin test

  3. Linux下查看tomcat连接数 &period;

    netstat -na | grep ESTAB | grep 80 | wc -l 80是端口号

  4. &lbrack;置顶&rsqb;PADS PCB功能使用技巧系列之NO&period;005- 如何正确使用Verify Design?

    有没有遇到过进行Verify Design通过后,回来的样板仍然出现短路或其它莫名其妙的问题?此情此景,你是否一度对PADS失去的希望?但,工具是没有问题的,看看怎么样正确有效地使用它吧.主要需要注意 ...

  5. BZOJ3109&colon; &lbrack;cqoi2013&rsqb;新数独

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3109 搜索一遍.读入注意一下.. #include<cstring> #inclu ...

  6. 如何启动linux的telnet服务--转载

    如何启动linux的telnet服务 如何启动linux的telnet服务 步骤如下: 1.如果安装了telnet.telnet-server的rpm包,就跳到2.,否则安装这个包. 2.修改teln ...

  7. DB2日常维护常用命令

    1.检查是否有僵尸进程 ps -emo THREAD | grep -i Z | grep -i 实例名 2.处理死锁  --第一步:查看所有死锁  db2 get snapshot for lock ...

  8. vue实现tab切换功能

    最近用vue做一个页面的tab功能,经过一查找资料,没用路由,也没用动态组件,完美实现了tab切换功能,效果如下 下面是代码实现,这是模板 <article id="example&q ...

  9. SpringBank 开发日志 一种简单的拦截器设计实现

    当交易由Action进入Service之前,需要根据不同的Service实际负责业务的不同,真正执行Service的业务逻辑之前,做一些检查工作.这样的拦截器应该是基于配置的,与Service关联起来 ...

  10. redismyadmin安装(支持redis4 集群模式)

    yum install php-pecl-redis https://github.com/daivem/RedisMyAdmin下载最新的安装包,解压yum install nginx php ph ...