博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Floyd算法 - 最短路径
阅读量:5095 次
发布时间:2019-06-13

本文共 789 字,大约阅读时间需要 2 分钟。

2017-07-27 22:21:04

writer:pprp

该算法的本质是动态规划,形式简单,复杂度高为O(n^3);

d[i][j] = max(d[i][k]+d[k][j],d[i][j]);

采用的基本手段是松弛

适用:解决多源最短路径问题


 

代码如下:

#include 
using namespace std;const int maxn = 200;int n,s,t;int a[maxn+1][maxn+1];void init(){ int m,u,v; cin >> n >> m; for(int i =1; i<=n; i++) for(int j =1; j<=n; j++) a[i][j] = -1; for(int i = 1; i<=m; i++) cin >> u >> v >> a[u][v]; cin >> s >> t;}void floyd(){ int i,j,k; for(k=1; k<=n; k++) for(i=1; i<=n; i++) for(j=1; j<=n; j++) { if(a[i][k]!=-1&&a[k][j]!=-1) a[i][j] = min(a[i][j],a[i][k]+a[k][j]); }}int main(){ init(); floyd(); cout << a[s][t]+a[t][s]<

 

转载于:https://www.cnblogs.com/pprp/p/7247788.html

你可能感兴趣的文章
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
asp.net 获取IP地理位置的几个主要接口
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
【转】Linux内核调试方法总结
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
ORACLE 递归查询
查看>>
[Android] 开发第十天
查看>>
操作~拷贝clone()
查看>>
Java开发中的23种设计模式
查看>>
jQuery源码分析(2) - 为什么不用new jQuery而是用$()
查看>>
[转]【EL表达式】11个内置对象(用的少) & EL执行表达式
查看>>
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>