SPFA
2016-01-29 16:40
274 查看
<strong><span style="font-size:18px;"> 转自:http://blog.csdn.net/cnyali/article/details/47664329</span></strong>
#include<stdio.h> #include<string.h> #include<stdlib.h> const int maxn=100,INF=1000000000; int a[maxn][maxn],p[maxn],d[maxn],q[maxn*maxn]; int main(){ freopen("spfa.in","r",stdin); freopen("spfa.out","w",stdout); int i,j,k,m,n; int x,y,z; scanf("%d%d",&n,&m); for(i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); a[x][y]=z; } for(i=1;i<=n;i++)d[i]=INF; d[1]=0; q[1]=1; p[1]=1; int f=0,l=1; while(f<l){ f++;k=q[f]; for(i=1;i<=n;i++) if(a[k][i] && d[i]>d[k]+a[k][i]){ d[i]=d[k]+a[k][i]; if(!p[i]){ q[++l]=i; p[i]=1; } } p[k]=0; } for(i=1;i<=n;i++)printf("%d ",d[i]); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性