Cow Hurdles poj3615
迪杰斯特拉计算最短路径
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int T = Integer.parseInt(st.nextToken());
long[][] distIJ = new long[N+1][N+1];
long maxValue = 1000000000;
for(int i=1;i<=N;i++)
{
for(int j = 1;j<=N;j++){
distIJ[i][j] = maxValue;
}
}
int start;
int end;
int height;
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
start = Integer.parseInt(st.nextToken());
end = Integer.parseInt(st.nextToken());
height = Integer.parseInt(st.nextToken());
distIJ[start][end] = height;
}
for(int k = 1;k<=N;k++){
for(int i=1;i<=N;i++){
for(int j = 1;j<=N;j++){
if(distIJ[i][j]>Math.max(distIJ[i][k],distIJ[k][j])){
distIJ[i][j] = Math.max(distIJ[i][k],distIJ[k][j]);
}
}
}
}
long result;
int targetStart;
int targetEnd;
for (int i = 0; i < T; i++) {
st = new StringTokenizer(br.readLine());
targetStart = Integer.parseInt(st.nextToken());
targetEnd = Integer.parseInt(st.nextToken());
result = distIJ[targetStart][targetEnd];
if (result == maxValue) {
System.out.println(-1);
} else {
System.out.println(result);
}
}
}
}

浙公网安备 33010602011771号