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

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

#include
#include
#include
#include
#include
#include
using namespace std;int map[1000][1000];int main(){ int n,m,i,j,k; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i==j) map[i][j]=0; else map[i][j]=99999999; } for(i=1;i<=m;i++) { int x,y,z; cin>>x>>y>>z; map[x][y]=z; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) for(k=1;k<=n;k++) map[j][k]=min(map[j][k],map[j][i]+map[i][k]); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<

这是Floyd  O(n^3)

#include
#include
#include
#include
#include
#include
using namespace std;int map[1000][1000],dis[10000],book[10000];int main(){ int n,m; cin>>n>>m; int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i==j) map[i][j]=0; else map[i][j]=99999999; } while(m--) { int x,y,z; cin>>x>>y>>z; map[x][y]=z; } for(i=1;i<=n;i++) { dis[i]=map[1][i]; } book[1]=1; for(i=1;i<=n;i++) { int u; int minn=99999999; for(j=1;j<=n;j++) { if(dis[j]
dis[u]+map[u][j]) dis[j]=dis[u]+map[u][j]; } } for(i=1;i<=n;i++) { cout<

 这是Dijkstra

#include
#include
#include
#include
#include
#include
using namespace std;int x[1000],y[1000],z[1000];int dis[1000];int main(){ int n,m; cin>>n>>m; int i,j,k; for(i=1;i<=m;i++) { cin>>x[i]>>y[i]>>z[i]; } for(i=1;i<=n;i++) dis[i]=99999999; dis[1]=0; for(i=1;i<=n-1;i++) { for(j=1;j<=m;j++) { if(dis[y[j]]>dis[x[j]]+z[j]); dis[y[j]]=dis[x[j]]+z[j]; } } for(i=1;i<=n;i++) { cout<

 这是Bellman-ford

转载于:https://www.cnblogs.com/WWHHTT/p/7563145.html

你可能感兴趣的文章
每天一个Linux命令(7):pwd命令
查看>>
第三周
查看>>
Java中的堆和栈
查看>>
区域赛前立FLAG
查看>>
nginx防DOS攻击
查看>>
【BZOJ-4261】建设游乐场 最大费用最大流
查看>>
UML与软件建模:第一次作业(用例图绘制)
查看>>
PHP调用mysql函数整理
查看>>
通俗易懂系列 | 设计模式(五):策略模式
查看>>
三核CPU XP系统终极安装SQL 2005
查看>>
SQL语句查询优化续集
查看>>
(四)ServletConfig
查看>>
连接数据库修改篇
查看>>
说说面向对象
查看>>
mybatis学习笔记
查看>>
使用淘宝 NPM 镜像
查看>>
zabbix 乱码的问题
查看>>
Swift 学习之二十一:?和 !(详解)
查看>>
Laravel
查看>>
二分图匹配
查看>>