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 <iostream>

using namespace std;

const int maxn = ;

int n,s,t;
int a[maxn+][maxn+]; void init()
{
int m,u,v;
cin >> n >> m;
for(int i =; i<=n; i++)
for(int j =; j<=n; j++)
a[i][j] = -;
for(int i = ; i<=m; i++)
cin >> u >> v >> a[u][v];
cin >> s >> t;
} void floyd()
{
int i,j,k;
for(k=; k<=n; k++)
for(i=; i<=n; i++)
for(j=; j<=n; j++)
{
if(a[i][k]!=-&&a[k][j]!=-)
a[i][j] = min(a[i][j],a[i][k]+a[k][j]);
}
} int main()
{
init();
floyd();
cout << a[s][t]+a[t][s]<<endl;
return ;
}

最新文章

  1. hdu 5506 GT and set dfs+bitset优化
  2. iOS-多线程 ,整理集锦,多种线程的创建
  3. ggplo2学习笔记——基本图形类型
  4. Mysql 对数字的格式化
  5. UVa 10674 (求两圆公切线) Tangents
  6. iOS开发中EXC_BAD_ACCESS的另类原因
  7. Response.Write() Alert后页面布局改变
  8. ORACLE数据库SQL优化 not in 与not exits
  9. laravel 核心类Kernel
  10. day03-课堂笔记
  11. 多线程系列之五:Balking 模式
  12. socket基础编程-1
  13. 【XSY2703】置换 数学 置换 DP
  14. 基于Angular+WebAPI+OData的增删改查
  15. java阶段学习目标
  16. c面试题总结
  17. HDU 4462Scaring the Birds(枚举所有状态)
  18. python之选择排序
  19. shell编程(二)
  20. OKR学习总结

热门文章

  1. 【BZOJ4566】[Haoi2016]找相同字符 后缀数组+单调栈
  2. 170210、JAVA中List、Map、Set的区别与选用
  3. 【Git和GitHub】学习笔记
  4. 如何看懂ORACLE执行计划
  5. iOS10以前的本地通知和远程通知
  6. FW: Dockerfile RUN, CMD &amp; ENTRYPOINT
  7. 笔记-django学习链接
  8. flask实现获取表单并执行shell
  9. 关于source insight、添加.s和.S文件,显示全部路径、加入项目后闪屏幕
  10. js高级---js运行原理