【POJ 3259】Wormholes 【spfa判负环】
来源:互联网 发布:交控集团网络商学院 编辑:程序博客网 时间:2024/04/30 01:37
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#include <vector>using namespace std;#define X first#define Y second#define INF 0x3f3f3f3f#define pii pair<int,int>const int N=550;vector<pii>e[N];int vis[N];int dis[N];int cnt[N];int n,m,w;void init(){ memset(vis,false,sizeof vis); memset(dis,INF,sizeof dis); memset(cnt,0,sizeof cnt);}int spfa(int root){ init(); queue<int>q; vis[root]=true; cnt[root]=1; dis[root]=0; while(!q.empty()) q.pop(); q.push(root); while(!q.empty()){ int u=q.front(); q.pop(); vis[u]=false; for(int i=0; i<e[u].size(); i++){ int v=e[u][i].X,k=e[u][i].Y; if(dis[u]+k<dis[v]){ dis[v]=dis[u]+k; if(!vis[v]){ vis[v]=true; q.push(v); if(++cnt[v]>n){ return 1; } } } } } return 0;}int main(){ int t,u,v,c; scanf("%d",&t); while(t--){ scanf("%d%d%d",&n,&m,&w); for(int i=0;i<=n;i++) e[i].clear(); while(m--){ scanf("%d%d%d",&u,&v,&c); e[u].push_back(pii(v,c)); e[v].push_back(pii(u,c)); } while(w--){ scanf("%d%d%d",&u,&v,&c); e[u].push_back(pii(v,-c)); } bool flag=false; for(int i=1; i<=n; i++){ if(spfa(i)){ flag=true; printf("YES\n"); break; } } if(!flag) printf("NO\n"); } return 0;}
0 0
- 【POJ 3259】Wormholes 【spfa判负环】
- poj 3259--Wormholes 【spfa判负环】
- POJ 3259-Wormholes-SPFA判负环
- POJ 3259 Wormholes SPFA判负环
- poj 3259 Wormholes【spfa判负环】
- POJ 3259 Wormholes spfa判负环
- poj 3259 Wormholes //SPFA
- poj 3259 Wormholes SPFA
- POJ 3259 Wormholes(SPFA)
- Wormholes - POJ 3259 spfa
- poj 3259 Wormholes(spfa)
- POJ 3259:Wormholes 【SPFA】
- Wormholes POJ 3259【SPFA】
- poj 3259-- Wormholes(SPFA)
- POJ-3259 Wormholes(SPFA)
- Poj 3259 Wormholes ( SPFA
- POJ 3259 Wormholes spfa
- [POJ 3259] Wormholes [SPFA]
- hadoop安装过程遇到的问题
- Mac Openvpn配置
- 更新Xcode后解决插件失效的entire
- 动态确定tableViewCell的高度
- 冒烟测试
- 【POJ 3259】Wormholes 【spfa判负环】
- C# Process.Start()方法详解
- URI和URL
- 跨浏览器事件处理 封装EventUtil
- iOS开发系列--让你的应用“动”起来
- 面试题--你是怎么理解泛型的?
- 如何成为一名优秀的程序员
- Oracle创建存储过程
- OpenCV 2.4+ C++ 边缘梯度计算