POJ 3259 Wormholes (BellmanFord判断图是否存在负环)
来源:互联网 发布:java缓存和中间件 编辑:程序博客网 时间:2024/05/22 07:56
题目链接
POJ3259
题目大意
输入一个图,有N(1
分析
判断图是否存在负环的模板题。
用Bellman-Ford算法,对所有边进行N-1轮松弛,如果之后还能继续进行松弛,则存在负权回路。时间复杂度O(N*(M+W))
代码
#include <iostream>#include <cstdio>using namespace std;const int INF=99999999;const int MAXM=5500;const int MAXN=510;struct Edge{ int u,v,w;}edge[MAXM];//边集数组int dis[MAXN],n,m,t,edgenum;void Add_Edge(int u,int v,int w)//构造边集数组{ edgenum++; edge[edgenum].u=u; edge[edgenum].v=v; edge[edgenum].w=w;}bool Bellmen_Ford(){ for (int i=1;i<=n;i++) dis[i]=INF; dis[1]=0; for (int k=1;k<=n-1;k++)//对所有边进行N-1轮松弛 { bool flag=false; for (int i=1;i<=edgenum;i++) { int u=edge[i].u; int v=edge[i].v; if (dis[v]>dis[u]+edge[i].w) { dis[v]=dis[u]+edge[i].w; flag=true; } } if (!flag) break;//如果松弛操作已经没有更新效果了,可提前退出循环 } for (int i=1;i<=edgenum;i++)//如果N-1轮松弛后还能继续松弛,则存在负环 if (dis[edge[i].v]>dis[edge[i].u]+edge[i].w) return true; return false;}int main(){ int F,i,u,v,w; scanf("%d",&F); while (F--) { scanf("%d%d%d",&n,&m,&t); edgenum=0; for (i=1;i<=m;i++) { scanf("%d%d%d",&u,&v,&w); Add_Edge(u,v,w); Add_Edge(v,u,w); } for (i=1;i<=t;i++) { scanf("%d%d%d",&u,&v,&w); Add_Edge(u,v,-w); } bool ans=Bellmen_Ford(); if (ans) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- POJ 3259 Wormholes (BellmanFord判断图是否存在负环)
- poj 3259 Wormholes 【spfa判断是否存在负环】
- POJ 3259 Wormholes(SPFA算法判断是否存在负环)
- POJ 3259 Wormholes 【判断是否存在负环】
- poj 3259 Wormholes (判断图是否存在负圈)
- POJ3259 Wormholes 【Bellmanford判断是否存在负回路】
- Wormholes 3259 (最短路+判断负环是否存在)
- POJ3259 Wormholes(Bellmanford判断负环)
- 【bellmanford 】poj 3259 判断负环
- [ACM] POJ 3259 Wormholes (bellman-ford最短路径,判断是否存在负权回路)
- POJ:3259 Wormholes(SPFA判断负环)
- POJ 3259 Wormholes 【SPFA 判断负环】
- POJ 3259 Wormholes 判断负环
- poj 3259 Wormholes 【判断负环】
- poj 3259 Wormholes 【SPFA&&判断负环】
- Poj 3259 Wormholes【spfa 负环判断】
- poj 3259 Wormholes(判断负环)
- POJ 3259 Wormholes SPFA 判断负环
- 《c程序设计语言》读书笔记(五)——指针与数组
- 从程序员到数据科学家:SAS 编程基础 (02)
- 螺旋螺旋螺旋稳
- 如何辨别是否是纯数字类型
- CyclicBarrier和CountDownLatch区别
- POJ 3259 Wormholes (BellmanFord判断图是否存在负环)
- 小项目第二天图书的现实完成
- Python打包与发布的概念总结
- POJ
- gcc5.3.0安装
- LeetCode 8: String to Integer (atoi) (python)
- SIFT特征提取算法总结
- 从程序员到数据科学家:SAS 编程基础 (03)
- 使用iptables-persistent持久化iptables规则