UVA - 558 Wormholes
来源:互联网 发布:软交换网络协议 编辑:程序博客网 时间:2024/05/21 09:02
题意:问是否存在负数环,两种判断方法:Bellman还有SPFA,临摹的模板
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <vector>using namespace std;const int MAXN = 2010;const int INF = 0x3f3f3f3f;int u[MAXN],v[MAXN],t[MAXN];int dis[MAXN],inq[MAXN],times[MAXN];int n,m;struct Edge{ int v,t; Edge() {} Edge(int vv,int tt){ v = vv,t = tt; }};vector<Edge> ver[MAXN];int cnt = 0;bool bellman(){ for (int i = 0; i < n; i++) dis[i] = INF; dis[0] = 0; for (int k = 0; k < n-1; k++) for (int i = 0; i < m; i++){ if (dis[u[i]] != INF && dis[v[i]] > dis[u[i]]+t[i]) dis[v[i]] = dis[u[i]] + t[i]; } for (int i = 0; i < m; i++) if (dis[u[i]] != INF && dis[v[i]] > dis[u[i]]+t[i]) return true; return false;}bool spfa(){ queue<int > q; for (int i = 0; i < n; i++){ inq[i] = 0; times[i] = 0; dis[i] = INF; } inq[0] = 1; dis[0] = 0; q.push(0); while (!q.empty()){ int cur = q.front(); q.pop(); inq[cur] = 0; times[cur]++; if (times[cur] > n) return true; for (int i = 0; i < ver[cur].size(); i++){ int vv = ver[cur][i].v,tt = ver[cur][i].t; if (dis[cur] != INF && dis[vv] > dis[cur] + tt){ dis[vv] = dis[cur] + tt; if (!inq[vv]){ inq[vv] = 1; q.push(vv); } } } } return false;}int main(){ int cas; scanf("%d",&cas); while (cas--){ scanf("%d%d",&n,&m); for (int i = 0; i < n; i++) ver[i].clear(); for (int i = 0; i < m; i++){ int uu,vv,tt; scanf("%d%d%d",&uu,&vv,&tt); ver[uu].push_back(Edge(vv,tt)); } if (spfa()) printf("possible\n"); else printf("not possible\n"); } return 0;}
- uva 558 - Wormholes
- UVa 558 - Wormholes
- UVa:558 Wormholes
- UVA - 558 Wormholes
- UVa 558 - Wormholes
- UVa 558 - Wormholes(SPFA)
- UVA 558 Wormholes
- Uva 558Wormholes
- uva 558Wormholes
- Uva 558 - Wormholes//Bellman-Ford
- UVa 558 Wormholes / Bellman-Ford
- UVA - 558 Wormholes 负环
- UVA 558Wormholes 【SPFA 判负环】
- UVA-558 Wormholes(Floyd)
- UVa 558 - Wormholes (求负回路)
- (beginer) 最短路 UVA 558 Wormholes
- UVA - 558 Wormholes (Bellman-ford)
- Wormholes - UVa 558 spfa判断负环
- 圖形特效與文字顯示
- 遊戲畫面管理與切換控制
- 【opencv】特征点检测和追踪--光流法
- C++类对象的内存模型
- Axis2 WebService的配置、发布、调用
- UVA - 558 Wormholes
- 了解 XNA 的遊戲架構。
- android学习笔记(1)-ANDROID开发环境搭建
- 子集---答题
- C#判断是否存在已连接的真实网卡(NetConnectionStatus)
- eclipse配置开发web项目,eclipse配置tomcat
- 物體在二維空間中的移動
- ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
- 我的onServiceDisconnected为什么没有被呼叫