Uva 558Wormholes
来源:互联网 发布:iphone桌面软件管理 编辑:程序博客网 时间:2024/05/21 12:45
这道题是要判断图中是否存在负环。。。用BF算法。。从0开始松弛
存在负环,说明经过n-1次的松弛之后,还可以继续松弛。
BF算法
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm> using namespace std;#define inf 99999999const int maxn=2*2000; int u[maxn],v[maxn],w[maxn];int d[maxn];int n,m;int BF(int p){ for(int i=0;i<n;i++) d[i]=inf; d[p]=0; for(int i=1;i<n;i++) { for(int j=0;j<m;j++) { int x=u[j],y=v[j]; if(d[x]+w[j]<d[y]) d[y]=d[x]+w[j]; } } for(int i=0;i<m;i++) { int x=u[i],y=v[i]; if(d[x]+w[i]<d[y]) return 1; } return 0;} int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); for(int i=0;i<m;i++) scanf("%d %d %d",&u[i],&v[i],&w[i]); if(BF(0)) { printf("possible\n"); } else printf("not possible\n");}return 0;}
dfs算法
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>const int maxn=2*2000;#define inf 999999999struct node{ int u; int w; int next;}V[maxn];int tol;int d[maxn],f[maxn];int head[maxn];void init(){ tol=0; memset(head,-1,sizeof(head));}void add(int u,int v,int w){ V[tol].u=v; V[tol].w=w; V[tol].next=head[u]; head[u]=tol++;}int dfs_(int u){ f[u]=1; for(int i=head[u];i!=-1;i=V[i].next) { int v=V[i].u; int w=V[i].w; if(d[u]+w<d[v]) { d[v]=d[u]+w; if(!f[v]) { if(dfs_(v)) return 1; } else return 1; } } f[u]=0; return 0;}int main(){ int t,n,m; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); for(int i=0;i<=n;i++) d[i]=inf; init(); memset(f,0,sizeof(f)); int a,b,c; while(m--) { scanf("%d %d %d",&a,&b,&c); add(a,b,c); } d[0]=0; if(dfs_(0)) { printf("possible\n"); } else printf("not possible\n"); } return 0;}
0 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判断负环
- C-Lodop工作原理
- 10099 The Tourist Guide
- hdu2066(迪杰斯特拉算法模板)
- Uva(10986)
- 嵌入式系统
- Uva 558Wormholes
- sencha touch下拉刷新上拉加载实现
- Uva10806
- Uva(10330)
- 串口通信的相关概念和理解原理
- Uva753
- Uva11045
- Uva(10594)
- Uva(10158)