HDU 2544 用作测试模板是否正确
#include<cstdio>
const int inf = 0xfffff;
const int N = 510;
int dis[N][N];
void initi(int n){
int i, j;
for(i = 0;i < n;i++)
for(j = 0;j < n;j++)
dis[i][j] = inf;
}
int floyd(int n){
int i, j, k;
for (k = 0;k < n;k++)
for (i = 0;i < n;i++)
for (j = 0;j < n;j++)
if (dis[i][j] > dis[i][k] + dis[k][j])
dis[i][j] = dis[i][k] + dis[k][j];
return dis[0][n - 1];
}
int main(){
int n, m;
while(scanf("%d%d", &n, &m)){
int j, temp, A, B, C;
if(n == 0&&m == 0)
break;
initi(n);
for(j = 0;j < m;j++){
scanf("%d%d%d", &A, &B, &C);
dis[A - 1][B - 1] = C;
dis[B - 1][A - 1] = C;
}
printf("%d\n", floyd(n));
}
return 0;
}

本文深入探讨了HDU2544问题中使用Floyd算法作为测试模板的实现过程,包括初始化矩阵、求解最短路径以及处理输入输出的细节。通过实例代码解析,帮助读者理解Floyd算法在解决多源最短路径问题时的高效应用。
&spm=1001.2101.3001.5002&articleId=8257298&d=1&t=3&u=d6e626ba6c8b41a794a6ee57b6a0fcdc)
737

被折叠的 条评论
为什么被折叠?



