博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ No 3259 Wormholes Bellman-Ford 判断是否存在负图
阅读量:5162 次
发布时间:2019-06-13

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

题目:

题意:主要就是构造图, 然后判断,是否存在负图,可以回到原点

/*23 3 1       //N, M, W1 2 21 3 42 3 13 1 3       //虫洞 3 2 1       //N, M, W1 2 32 3 43 1 8*/#include 
#include
using namespace std;const int maxn = (2500 + 200 + 16) * 2 + 24;const int INF = 10000 + 10;int N, M, W;//(from, to) 权值为cost struct Edge { int from, to, cost; Edge(int f = 0, int t = 0, int c = 0) : from(f), to(t), cost(c) {}};//边Edge es[maxn];int d[maxn]; //最短距离int V, E; //顶点数,E边数 bool find_negative_loop() { memset(d, 0, sizeof(d)); for (int i = 0; i < V; i++) { for (int j = 0; j < E; j++) { Edge e = es[j]; if (d[e.to] > d[e.from] + e.cost) { d[e.to] = d[e.from] + e.cost; //如果第n次仍然更新了,则存在负圈 if (i == V - 1) return true; } } } return false;}void solve(){ int F; int from, to, cost; scanf("%d", &F); while (F--) { scanf("%d%d%d", &N, &M, &W); //顶点数,边数, 虫洞数 V = N; E = 0; // E = M * 2 应该 for (int i = 0; i < M; ++i) { cin >> from >> to >> cost; --from; --to; //无向图 -- 去 es[E].from = from; es[E].to = to; es[E].cost = cost; ++E; //回 -- 再来一次 es[E].from = to; es[E].to = from; es[E].cost = cost; ++E; } for (int i = 0; i < W; i++) { cin >> from >> to >> cost; --from; --to; es[E].from = from; es[E].to = to; //虫洞 - 回路 es[E].cost = -cost; ++E; } if (find_negative_loop()) { printf("YES\n"); } else { printf("NO\n"); } }}int main(){ solve(); return 0; }

 

转载于:https://www.cnblogs.com/douzujun/p/6870344.html

你可能感兴趣的文章
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
Java中的日期和时间
查看>>
Django基于admin的stark组件创建(一)
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>
基于FPGA实现的高速串行交换模块实现方法研究
查看>>
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>