博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最短路(Bellman_Ford) POJ 3259 Wormholes
阅读量:6239 次
发布时间:2019-06-22

本文共 1649 字,大约阅读时间需要 5 分钟。

 

1 /* 2     题意:一张有双方向连通和单方向连通的图,单方向的是负权值,问是否能回到过去(权值和为负) 3     Bellman_Ford:循环n-1次松弛操作,再判断是否存在负权回路(因为如果有会一直减下去) 4     注意:双方向连通要把边起点终点互换后的边加上 5 */ 6 #include 
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 using namespace std;16 17 const int MAXN = 6000 + 10;18 const int INF = 0x3f3f3f3f;19 int d[MAXN];20 struct NODE21 {22 int from, to, cost;23 }node[MAXN];24 25 bool Bellman_Ford(int s, int n, int m)26 {27 int x, y;28 d[s] = 0;29 for (int k=1; k<=n-1; ++k)30 {31 for (int i=1; i<=m; ++i)32 {33 NODE e = node[i];34 d[e.to] = min (d[e.to], d[e.from] + e.cost);35 }36 }37 38 for (int i=1; i<=m; ++i)39 {40 NODE e = node[i];41 if (d[e.to] > d[e.from] + e.cost) return false;42 }43 44 return true;45 }46 47 void work(int n, int m)48 {49 bool flag = false;50 flag = Bellman_Ford (1, n, m);51 52 (!flag) ? puts ("YES") : puts ("NO");53 }54 55 int main(void) //POJ 3259 Wormholes56 {57 //freopen ("B.in", "r", stdin);58 59 int N, M, W;60 int t;61 scanf ("%d", &t);62 while (t--)63 {64 scanf ("%d%d%d", &N, &M, &W);65 for (int i=1; i<=N; ++i) d[i] = INF;66 67 int x, y, z;68 for (int i=1; i<=2*M; ++i)69 {70 scanf ("%d%d%d", &x, &y, &z);71 node[i].from = x; node[i].to = y; node[i].cost = z;72 node[++i].from = y; node[i].to = x; node[i].cost = z;73 }74 75 for (int i=2*M+1; i<=2*M+W; ++i)76 {77 scanf ("%d%d%d", &x, &y, &z);78 node[i].from = x; node[i].to = y; node[i].cost = -z;79 }80 81 work (N, 2*M+W);82 }83 84 return 0;85 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4372560.html

你可能感兴趣的文章
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
查看>>
Linux中Samba服务器的搭建
查看>>
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
查看>>
nfs服务的配置
查看>>
微信小程序支付调试
查看>>
ASP.NET中GridView数据导出到Excel
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
swoole项目思维转换 -- 前篇
查看>>
我的友情链接
查看>>
Redis之----Redis的数据类型和操作
查看>>
只读字段与标签字段
查看>>
ubuntu修改时区和时间的方法
查看>>
maven实战 读书笔记三#高级程序员进阶之路#
查看>>
硬盘安装windows 7
查看>>
编译器编译原理--详解
查看>>
第五章 择偶
查看>>
用Fiddler模拟低速网络环境
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
Python练习2
查看>>