关注
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Third {
static int M, N, minDist = Integer.MAX_VALUE;
static int[][] parArea;
static int direc1[] = {-1, 1, 0, 0}, direc2[] = {0, 0, 1, -1};
static List<Integer[]> res = null;
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
M = cin.nextInt();
N = cin.nextInt();
int i1 = cin.nextInt();
int j1 = cin.nextInt();
parArea = new int[M + 1][N + 1];
boolean[][] visited = new boolean[M + 1][N + 1];
for (int i = 1; i < M + 1; i++) {
for (int j = 1; j < N + 1; j++) {
parArea[i][j] = cin.nextInt();
}
}
List<Integer[]> path = new ArrayList<>();
dfs(i1, j1, path, 1, visited);
if (res == null) {
System.out.print(-1 + " " + -1);
return;
}
for (int i = 0; i < res.size(); i++) {
System.out.print(res.get(i)[0] + " " + res.get(i)[1]);
if (i < res.size() - 1) System.out.print(" ");
}
}
public static void dfs(int curI, int curJ, List<Integer[]> path, int dist, boolean[][] visited) {
if (parArea[curI][curJ] == 3 || parArea[curI][curJ] == 2) return;
if (parArea[curI][curJ] == 1) {
path.add(new Integer[]{curI, curJ});
if (dist < minDist) {
res = new ArrayList<>(path);
minDist = dist;
}else if (dist == minDist &;&; path.get(path.size() - 1)[0] < res.get(res.size() - 1)[0]) {
res = new ArrayList<>(path);
}
path.remove(path.size() - 1);
return;
}
visited[curI][curJ] = true;
path.add(new Integer[]{curI, curJ});
for (int i = 0; i < 4; i++) {
int nextI = curI + direc1[i], nextJ = curJ +direc2[i];
if (nextI >= 1 &;&; nextI <= M &;&; nextJ >= 1 &;&; nextJ <= N &;&; !visited[nextI][nextJ]) {
if ((i == 2 || i == 3)
dfs(nextI, nextJ, path, dist + 1, visited);
}
}
path.remove(path.size() - 1);
visited[curI][curJ] = false;
}
}
查看原帖
1 5
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
11094次浏览 199人参与
# 辞职之后最想做的一件事 #
7897次浏览 86人参与
# 毕业季,给职场新人一些建议 #
9766次浏览 189人参与
# 选offer应该考虑哪些因素 #
9218次浏览 128人参与
# 我的实习日记 #
2415003次浏览 25257人参与
# 工作后会跟朋友渐行渐远吗 #
20401次浏览 158人参与
# 你想留在一线还是回老家? #
36080次浏览 437人参与
# 你小时候最想从事什么职业 #
89961次浏览 1685人参与
# 设计人如何选offer #
107982次浏览 706人参与
# 毕业后不工作的日子里我在做什么 #
167599次浏览 1482人参与
# 生物制药/化工校招攻略 #
42606次浏览 282人参与
# 比亚迪求职进展汇总 #
703177次浏览 3059人参与
# 你们公司哪个部门最累? #
14158次浏览 118人参与
# 薪资爆料 #
101898次浏览 1038人参与
# 你们的毕业论文什么进度了 #
1013105次浏览 9505人参与
# 秋招想进国企该如何准备 #
56629次浏览 363人参与
# 招聘要求与实际实习内容不符怎么办 #
98127次浏览 717人参与
# 大学最后一个寒假,我想…… #
35404次浏览 454人参与
# 工作中的卑微时刻 #
8759次浏览 54人参与
# 第一份工作应该只看薪资吗 #
136787次浏览 1438人参与