Floyd-Warshall算法
这个算法所使用的基本思想是:如果我们要求两个点之间的最短距离,不一定是两个点之间的直达距离,有可能是经过转点后的距离,例如从A->B的距离为10,而从A->C的距离为5,从C->B的距离为4,如果我们走A->C->B的距离的话,那么就更短,如果确定这条路径是最短距离,那么也同样可以确定,A->C的最短路径为5,B->C的最短路径为4,也就是说,如果我们确定了一条多转站的路径为最短路径后,它所经过的点都为,从一点到沿途点的最短路径
#include<stdio.h>
int main(){
int e[10][10],k,j,i,n,m,t1,t3,t2;
int inf=99999999;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
if(i==j) e[i][j]=0;
else e[i][j]=inf;
}
//读入边
for(i=1;i<=m;i++){
scanf("%d %d %d",&t1,&t2,&t3);
}
//算法核心语句
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(e[i][j]>e[i][k]+e[k][j])
e[i][j]&#