package 番外篇2024;
import java.util.PriorityQueue;
import java.util.Scanner;
public class 寻找最优的路测线路 {
static int R;
static int C;
static int[][] a;
static int result = Integer.MAX_VALUE;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
R = sc.nextInt();
C = sc.nextInt();
a = new int[R][C];
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
a[i][j] = sc.nextInt();
}
}
dijiskta(0, 0);
}
static void dijiskta(int i, int j) {
PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> b[2] - a[2]);
int[] ding = new int[R * C];
pq.add(new int[] { i, j, a[i][j] });
int[] X_ = new int[] { -1, 1, 0, 0 };
int[] Y_ = new int[] { 0, 0, -1, 1 };
while (pq.size() > 0) {
int[] temp = pq.poll();
int max = 0;
for (int k = 0; k < 4; k++) {
int newX = temp[0] + X_[k];
int newY = temp[1] + Y_[k];
if (newX >= 0 && newX < R && newY >= 0 && newY < C) {
if (max < a[newX][newY]) {
max = a[newX][newY];
} else {
pq.add(new int[] { newX, newY, a[newX][newY] });
}
result = Math.min(result, max);
}
}
}
}
}
寻找最优的路测线路
于 2024-04-12 17:29:14 首次发布