http://acm.hdu.edu.cn/showproblem.php?pid=2544
题目 | 算法 | 备注 |
求村庄1到n的最短路,给出各个村庄之间的距离 | 弗洛伊德算法(没超时) | 村庄距离 初始化最大值 |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int m,n,i,j,k,a,b,c;
Scanner oo=new Scanner(System.in);
while(oo.hasNext()){
n=oo.nextInt();
m=oo.nextInt();
if(n==0&&m==0){break;}
int d[][]=new int[n+1][n+1];
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
d[i][j]=100000;
}
}
for(i=0;i<m;i++){
a=oo.nextInt();
b=oo.nextInt();
c=oo.nextInt();
if(c<d[a][b]){
d[a][b]=c;
d[b][a]=c;
}
}
for(k=1;k<=n;k++){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(d[i][j]>d[i][k]+d[k][j]){
d[i][j]=d[i][k]+d[k][j];
}
}
}
}
System.out.println(d[1][n]);
}
}
}