Cow Hurdles poj3615

Cow Hurdles

迪杰斯特拉计算最短路径

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);
}
}
}
}

posted @ 2021-04-30 16:48  Monstro  阅读(47)  评论(0)    收藏  举报