Floyd-Warshall算法 (任意两点间的最短路问题)
来源:互联网 发布:网络测试好学吗 编辑:程序博客网 时间:2024/05/16 15:36
这个算法本质上就是动态规划。
首先我们给有V个顶点的图每个顶点标号0~V-1,则设 d[k][i,j] 为点 i 到点 j 的路径中标号最大(不包括 i 和 j )的点为 k,则可得状态转移方程
又因为第 k 次覆盖第 k-1 次对结果没有影响,所以又可以压缩成
Floyd-Warshall算法的时间复杂度为
#include <fstream>#include <algorithm>using namespace std;ifstream fin("floyd.in");ofstream fout("floyd.out");int main(){ int V, E, d[100][100]; fin>>V>>E; for (int i=0; i<E; i++) { int v_s, v_t, dis; fin>>v_s>>v_t>>dis; d[v_s][v_t] = d[v_t][v_s] = dis;//无向图 } for (int k=0; k<V; k++) for (int i=0; i<V; i++) for (int j=0; j<V; j++) d[i][j] = min(d[i][j], d[i][k] + d[k][j]); for (int i=0; i<V; i++) { for (int j=0; j<V; j++) fout<<d[i][j]<<' '; fout<<endl; } return 0;}
0 0
- 任意两点的最短路问题 Floyd-Warshall算法
- 【算法】Floyd-Warshall算法(任意两点间的最短路问题)(判断负圈)
- Floyd-Warshall算法 (任意两点间的最短路问题)
- 任意两点间的最短路问题(floyd算法)
- Floyd-Warshall算法求任意两点间的最短路(图论算法)
- Floyd-算法--任意两点间的最短路问题
- 任意两点最短路 Floyd-Warshall算法 传递闭包
- 每日一题 No.50 任意二点间的最短路问题(Floyd-Warshall算法)
- 任意两点之间的最短路径问题(Floyd-Warshall算法)
- Floyd算法 求任意两点的最短路
- Floyd-Warshall算法--求任意两点最短距离
- floyd算法-求图中任意两点间最短路
- Floyd --任意两点之间的最短路问题
- 最短路的Warshall-Floyd算法
- Floyd算法(任意两点间的最短路径)
- 基础Floyd--任意两点间最短路
- AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)
- 任意结点对最短路问题——Floyd-Warshall算法
- JVM飙高排查脚本-结构分析
- dp,px,pt,sp 的区别 以及dp 和 px 互转
- HDOJ 2009 求数列的和
- SQL语句,多表查询,连接查询,嵌套查询,集合操作,有IN谓词,有比较运算符,有ANY\EXIST谓词的查询
- maven依赖
- Floyd-Warshall算法 (任意两点间的最短路问题)
- 链路聚合、Trunk、端口绑定和捆绑简析
- 自定义collectionView,最后一行的居中
- 通过指定的URL抓取网页内容
- bzoj1207 [HNOI2004]打鼹鼠
- 什么是POD?
- 利其器-Android studio界面
- Log4j2介绍和特性实例(三)--日志的异步输出
- Arduino - 中断的使用