POJ 3259 最短路 判负环
来源:互联网 发布:尔雅公选课软件 编辑:程序博客网 时间:2024/05/21 14:53
SPFA 判负环 某个点访问n次
#include <set>#include <map>#include <cmath>#include <queue>#include <stack>#include <string>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const double PI = acos(-1.0);template <class T> inline T MAX(T a, T b){if (a > b) return a;return b;}template <class T> inline T MIN(T a, T b){if (a < b) return a;return b;}const int N = 111;const int M = 11111;const LL MOD = 1000000007LL;const int dir[4][2] = {1, 0, -1, 0, 0, -1, 0, 1};const int INF = 0x3f3f3f3f;int dist[555];struct node{ int v, w, next;}edge[6666];int head[555], cnt;int n, m, vis[555];int inq[555];inline void addnode(int u, int v, int w){ edge[cnt].v = v; edge[cnt].next = head[u]; edge[cnt].w = w; head[u] = cnt++;}bool solve(){ queue < int > q; fill(dist, dist + n + 1, INF); memset(vis, 0, sizeof(vis)); memset(inq, 0, sizeof(inq)); dist[1] = 0; vis[1]++; inq[1]++; int u, i, j, k, v; q.push(1); while (!q.empty()) { u = q.front(); q.pop(); inq[u]--; for (i = head[u]; ~i; i = edge[i].next) { v = edge[i].v; if (dist[u] + edge[i].w < dist[v]) { dist[v] = dist[u] + edge[i].w; if (!inq[v]) {q.push(v); vis[v]++; inq[v]++; if (vis[v] >= n) return true;} } } } return false;}int main(){ int T; scanf("%d", &T); while (T--) { int u, v, w, k, i; memset(head, -1, sizeof(head)); cnt = 0; scanf("%d%d%d", &n, &m, &k); for (i = 0; i < m; ++i) { scanf("%d%d%d", &u, &v, &w); addnode(u, v, w); addnode(v, u, w); } for (i = 0; i < k; ++i) { scanf("%d%d%d", &u, &v, &w); addnode(u, v, -w); } int flag = 0; if (solve()) printf("YES\n"); else printf("NO\n"); } return 0;}
- POJ 3259 最短路 判负环
- poj 3259 最短路
- poj 3259 Wormholes 图论 最短路 判负环
- poj 3259 Wormholes 最短路
- poj 3259 Wormholes 最短路
- POJ Wormholes 3259(最短路)
- poj 3259 Wormholes 最短路
- POJ 3259 Wormholes(最短路)
- poj 3259 最短路判负环 spfa算法和Bellman_ford算法
- poj 3259 Wormholes 【spfa判负环---求最短路】
- [POJ 3259] Wormholes 最短路判负环(SPFA版)
- poj 3259(bellman 最短路)
- POJ 3259 有负权的最短路 SPFA
- poj 3259 最短路(带负环)
- POJ 3259 Wormholes(最短路Bellman_Ford)
- poj 3259 Wormholes (最短路 Bellma_ford)
- POJ 3259 Wormholes(最短路)
- poj 3259 最短路负环
- C++ 运行时类型识别RTTI typeid<->dynamic_cast
- 20非常有用的Java程序片段(4)
- linux的时间相关函数
- MSDN 目录内容很多空白
- poj2075Tangled in Cables (最小生成树之prim)
- POJ 3259 最短路 判负环
- 小学期练习一(高级班) C - Holiday's Accommodation
- 几种典型的 iOS 应用界面的交互框架各自的优缺点
- 将一个NSImage实例保存成图片文件
- 01 背包基础题目
- 用Zebra做简单的RIP实验
- 树状数组
- Using DBI to connect to a Microsoft SQL server
- POJ1258Agri-Net (最小生成树之prim)