pku 3259 Wormholes
2010-08-02 17:13
302 查看
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 8968 | Accepted: 3171 |
代码:
#include<stdio.h> struct node { int a,b,t; }s[6000]; int dist[505],n,m,w; int relax(int u,int v,int t) { if(dist[v]>dist[u]+t) { dist[v]=dist[u]+t; return 1; } return 0; } int bellman(int v0) { int i,j; for(i=1;i<=n;i++) dist[i]=0xfffffff; dist[v0]=0; int flag; for(i=1;i<n;i++) { flag=0; for(j=1;j<=2*m+w;j++) { if(relax(s[j].a,s[j].b,s[j].t)) { flag=1; } } if(!flag) break; } for(j=1;j<=2*m+w;j++) if(relax(s[j].a,s[j].b,s[j].t)) return 1; return 0; } int main() { int f,i,a,b,t; scanf("%d",&f); while(f--) { scanf("%d%d%d",&n,&m,&w); for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&t); s[i].a=a; s[i].b=b; s[i].t=t; s[i+m].a=b; s[i+m].b=a; s[i+m].t=t; } for(i=1;i<=w;i++) { scanf("%d%d%d",&a,&b,&t); s[m*2+i].a=a; s[m*2+i].b=b; s[m*2+i].t=-t; } if(bellman(1)) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- pku3259 Wormholes
- PKU 3259 Wormholes 最短路 bellman
- pku 3259 Wormholes (Bellman ford判断负权边)
- PKU-#3259 Wormholes(Bellman-Ford+vector+FIFO)
- pku 3259Wormholes
- PKU3259(Wormholes)判定负权环-Bellman_Ford算法
- PKU 3259 Wormholes - 判断负权回路 Bellman-Ford
- pku3259 Wormholes
- pku 3259 Wormholes(bellman-ford)
- PKU 3259 Wormholes
- PKU 3259-Wormholes
- pku 3259 Wormholes(SPFA判负环)
- POJ 3259 Wormholes 贝尔曼福特算法判负环
- poj 3259 Wormholes
- 最短路(Bellman_Ford) POJ 3259 Wormholes
- Wormholes (POJ 3259)
- POJ 3259 Wormholes 最短路+负环
- poj 3259-- Wormholes(SPFA)
- POJ 3259:Wormholes bellman_ford判定负环
- poj 3259 Wormholes