POJ 3259 Wormholes 链式前向星+SPFA练习
来源:互联网 发布:光环大数据贴吧 编辑:程序博客网 时间:2024/06/07 10:46
题目大意:给出一个无向图,再给出W个虫洞,虫洞的意思就是权值为负的边,问你可否找到负权环
题解:SPFA中,如果某个点进队列超过N次,就可以判断有负全环。
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>const int maxn=510,inf=1000000000;int e,to[maxn*12],next[maxn*12],begin[maxn],w[maxn*12];int d[maxn],p[maxn],times[maxn],q[maxn*maxn];int m,n,wx,f,l,flag;void add(int x,int y,int z){ to[++e]=y; next[e]=begin[x]; begin[x]=e; w[e]=z; }void init(){ int i,j,k,x,y,z; scanf("%d%d%d",&n,&m,&wx); e=0; for(i=1;i<=n;i++)begin[i]=0; for(i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); add(x,y,z); add(y,x,z); } for(i=1;i<=wx;i++){ scanf("%d%d%d",&x,&y,&z); add(x,y,-z); } for(i=1;i<=n;i++){ d[i]=inf; p[i]=0; times[i]=0; } f=0;l=1; d[1]=0;q[1]=1;p[1]=1;times[1]=1; flag=0;}int main(){ int i,j,k,t; scanf("%d",&t); while(t--){ init(); while(f<l){ f++; k=q[f];p[k]=0; for(i=begin[k]; i ; i=next[i]) if(d[to[i]]>d[k]+w[i]){ d[to[i]]=d[k]+w[i]; if(!p[to[i]]){ q[++l]=to[i]; p[to[i]]=1; times[to[i]]++; if(times[to[i]]>=n){ flag=1; break; } } } if(flag)break; } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
3 0
- POJ 3259 Wormholes 链式前向星+SPFA练习
- POJ 3259 Wormholes 链式前向星+SPFA
- POJ 1511 Invitation Cards 链式前向星+SPFA练习
- POJ 1511 链式前向星+SPFA
- 最短路 SPFA 判断负环 静态邻接表(链式前向星) HDU 2544 最短路 POJ 3259 Wormholes
- 链式前向星+SPFA
- spfa+链式前向星
- SPFA+链式前向星
- [POJ 1511]Invitation Cards[链式前向星][SPFA]
- POJ3259(链式前向星+spfa)
- -----模板spfa+邻接表,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】
- python检测质数程序
- shell中管道、grep、sed、awk用法
- 【php】登录系统与输出浏览者信息
- pyinstall打包程序出现找不到amd64…
- Android之RelativeLayout相对布局
- POJ 3259 Wormholes 链式前向星+SPFA练习
- windows8使用cisco vpn连接提…
- 学习Unity3D之VS代码对数据库进行增、删、改、查数据。
- 第十六周项目一——数组的排序
- java 二维数组 6种写法
- 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)
- SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section A]】
- ajax跨域
- 战五渣的记忆力