hdu_2544_最短路(spfa版子)
来源:互联网 发布:北京联合大学网络学堂 编辑:程序博客网 时间:2024/06/05 03:46
题目连接:hdu_2544_最短路
存个自己写的SPFA的板子
#include<cstdio>#include<cstring>#define mst(a,b) memset(a,b,sizeof(a))#define F(i,a,b) for(int i=a;i<=b;i++)const int N=10011,inf=1<<30;int g[N],v[N*2],nxt[N*2],w[N*2],ed,d[N],in[N],cnt[N],Q[N];inline void adg(int x,int y,int z){v[++ed]=y,w[ed]=z,nxt[ed]=g[x],g[x]=ed;}bool spfa(int S,int n,int hd=1,int tl=0){//S为源点,n为点数F(i,0,n)d[i]=inf;mst(cnt,0),mst(in,0),cnt[S]=1,Q[++tl]=S,d[S]=0;for(int x,i;hd<=tl;)for(i=g[x=Q[hd++]],in[x]=0;i;i=nxt[i])if(d[v[i]]>d[x]+w[i]){d[v[i]]=d[x]+w[i];if(!in[v[i]]){in[v[i]]=1,d[v[i]]<d[Q[hd]]?Q[--hd]=v[i]:Q[++tl]=v[i];//SLF优化if(++cnt[v[i]]>n)return 0;//有负环}}return 1;}int n,m;int main(){while(scanf("%d%d",&n,&m),n+m){mst(g,0),ed=0;int x,y,z;F(i,1,m)scanf("%d%d%d",&x,&y,&z),adg(x,y,z),adg(y,x,z);spfa(1,n),printf("%d\n",d[n]);}return 0;}
0 0
- hdu_2544_最短路(spfa版子)
- hdu_2544_路口最短距离_最短路_dijkstra
- 版子,最短路
- [hdu 2544] 最短路(SPFA版)
- SPFA最短路
- 最短路之SPFA
- poj2472最短路spfa
- 最短路SPFA--poj3013
- 最短路 SPFA模板
- 最短路 SPFA
- 最短路spfa
- 最短路SPFA
- 最短路--SPFA算法
- 最短路SPFA算法
- 最短路SPFA
- 最短路SPFA
- 【SPFA】最短路 _HDU2544
- 【最短路】poj2472 SPFA
- Qt中文乱码问题
- 聊聊并发(四)——深入分析ConcurrentHashMap
- .html(),.text()和.val()的差异总结:
- zookeeper原理介绍
- 拼接json数据2种方法
- hdu_2544_最短路(spfa版子)
- MongoDB的选举过程
- The Meaning of URL, URI, URN
- 全选反选
- collectionView的反弹效果
- Android library projects cannot be launched解决方法
- json数据转换
- Oracle 重做(Redo)日志介绍
- Spring Boot所有配置项