代码:
使用邻接矩阵建图
使用邻接矩阵存放最短距离
#include<iostream>
#include<cstring>
using namespace std;
const int N=101;
int g[N][N];
int n,m;
void input(){
memset(g,0x3f,sizeof(g));
for(int i=1;i<=N;i++){
g[i][i]=0;
}
cin>>n>>m;
int a,b,c;
for(int i=1;i<=m;i++){
cin>>a>>b>>c;
g[a][b]=g[b][a]=c;
}
}
void floyd()
{
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
}
}
}
}
void output()
{
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<g[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
input();
floyd();
output();
}