1 Star 0 Fork 0

ashley/Mini_Route

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
floyd.cpp 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
ashley 提交于 2021-09-05 21:50 +08:00 . Mini_Route
#include<iostream>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;
const int N = 1010;
const int INF = 1e9;
int d[N][N]; //d[a][b]表示a到b的最短距离
int n , m;
void print_d(){
cout<<"d = "<<endl;
for(int i = 1 ; i <= n ; ++i){
for(int j = 1 ; j <= n ; ++j){
cout<<d[i][j]<<" ";
}
cout<<endl;
}
}
void init_floyd(){
for(int i = 1 ; i <= n ; ++i)
for(int j = 1 ; j <= n ; ++j)
d[i][j] = (i == j) ? 0 : INF;
print_d();
}
int floyd(){
for(int k = 1 ; k <= n ; ++k)
for(int i = 1 ; i <= n ; ++i)
for(int j = 1 ; j <= n ; ++j)
d[i][j] = min(d[i][j] , d[i][k] +d[k][j]);
return d[1][n];
}
// 3 3
// 1 2 2
// 2 3 1
// 1 3 4
int main(){
// cout<<"sizeof = "<<sizeof(d)<<endl;
// memset(d , 0x3f , sizeof(d));
// cout<<INF<<endl;
// if (i == j)
// d[i][j] = 0;
// else
// d[i][j] = INF;
scanf("%d%d" , &n , &m);
init_floyd();
for(int i = 1 ; i <= m ; i++){
int a , b , c;
scanf("%d%d%d" , &a,&b,&c);
d[a][b] = min(d[a][b] , c);///防止重边
}
cout<<floyd()<<endl;
printf("\nC 艹 mother fucker\n");
system("pause");
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ashleyZZ/mini_-route.git
git@gitee.com:ashleyZZ/mini_-route.git
ashleyZZ
mini_-route
Mini_Route
master

搜索帮助