【洛谷1593】【模板】template负环 递归SPFA判负环
来源:互联网 发布:数据检索网站 编辑:程序博客网 时间:2024/06/07 19:30
递归SPFA判负环…丢个模板跑
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int INF=2000000000;const int SIZE=500010;int n;int head[SIZE],nxt[SIZE],tot=0;struct edge{ int t,d;}l[SIZE];void build(int f,int t,int d){ l[++tot].t=t; l[tot].d=d; nxt[tot]=head[f]; head[f]=tot;}int dist[SIZE]; bool use[SIZE],vis[SIZE];bool dfs(int u){ vis[u]=1; for(int i=head[u];i;i=nxt[i]) { int v=l[i].t; if(dist[v]>dist[u]+l[i].d) { dist[v]=dist[u]+l[i].d; if(!use[v]) { use[v]=1; if(dfs(v)) return true; use[v]=0; } else { return true; } } } return false; }bool check(){ for(int i=1;i<=n;i++) { if(!vis[i]) { use[i]=1; if(dfs(i)) return true; use[i]=0; } } return false;}void init(){ for(int i=1;i<=tot;i++) { nxt[i]=l[i].t=l[i].d=0; } for(int i=1;i<=n;i++) { vis[i]=use[i]=head[i]=0; dist[i]=INF; } tot=0;}void scanf(int &n){ n=0; bool flag=0; char a=getchar(); while(a<'0'||a>'9') {if(a=='-') flag=1;a=getchar();} while(a>='0'&&a<='9') n=(n<<3)+(n<<1)+a-'0',a=getchar(); if(flag) n=-n;}int main(){ int T; scanf(T); while(T--) { init(); int m; scanf(n);scanf(m); for(int i=1;i<=m;i++) { int a,b,c; scanf(a);scanf(b);scanf(c); if(c<0) build(a,b,c); else build(a,b,c),build(b,a,c); } if(check()) puts("YE5"); else puts("N0"); } return 0;}
0 0
- 【洛谷1593】【模板】template负环 递归SPFA判负环
- POJ3259 Wormholes(spfa判断负环模板题)
- POJ3259 Wormholes(最短路,有无负环,spfa,模板)
- [模板]负环---dfs版spfa
- spfa判断负环
- spfa && 判断负环
- spfa负环 P2868
- 洛谷P3385 【模板】负环
- 【洛谷T577】【模板】template 最短路 SPFA+dij
- SPFA查找负环 POJ3259
- poj1860 spfa判断负环
- Wormholes(spfa判断负环)
- 关于spfa 判断负环
- POJ3259 Wormholes 洛谷P3385 【模板】负环
- LightOJ 1074 - Extended Traffic (SPFA负环)
- POJ:3259 Wormholes(SPFA判断负环)
- poj3259,简单判断有无负环,spfa
- hdu 1317 XYZZY spfa判断负环
- ArrayAdapter的创建方法
- Install Redis on Ubuntu
- [转载]C++中sizeof的使用总结
- iOS微博时间与微博来源文本的处理
- L-series IPM的结构图
- 【洛谷1593】【模板】template负环 递归SPFA判负环
- 协议森林
- [转载]C++中的四种类型转换方式
- HTTP头域字段详解
- Spring中的AOP—在Advice方法中获取目标方法的参数
- "递归"实现"约瑟夫环","汉诺塔"
- linux主机名的修改
- 解决eclipse中git插件中的cannot open git-upload-pack问题
- 程序员的自我修养