关注
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static int[][] maze = {
{-1, -1, -1, -1, -1, -1, -1},
{-1, 0, 2, 10, 5, 3, -1},
{-1, -1, 0, 12, -1, -1, 10},
{-1, -1, -1, 0, -1, 7, -1},
{-1, 2, -1, -1, 0, 2, -1},
{-1, 4, -1, -1, 1, 0, -1},
{-1, 3, -1, 1, -1, 2, 0}};
public static int minDis = Integer.MAX_VALUE;
public static ArrayList<Integer> result = null;
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
int X = 0, Y = 0;
while (scanner.hasNext()) {
X = scanner.nextInt();
Y = scanner.nextInt();
Stack<Integer> path = new Stack<Integer>();
boolean[] visited = new boolean[7];
main.initVisited(visited);
visited[5] = true;
path.push(5);
main.dfs(path, visited, 5, 0, X, Y);
if (result == null) {
System.out.println(1000);
System.out.println(new ArrayList<Integer>());
} else {
System.out.println(minDis);
System.out.println(result);
}
minDis = Integer.MAX_VALUE;
result = null;
}
}
private void dfs(Stack<Integer> path, boolean[] visited, int currentCity, int distance, int target, int forbidden) {
if (currentCity == target) {
if (distance < minDis) {
minDis = distance;
result = new ArrayList<Integer>();
for (int i = 0; i < path.size(); i++) {
result.add(path.get(i));
}
}
return;
}
for (int i = 1; i <= 6; i++) {
if (visited[i]) {
continue;
}
if (maze[currentCity][i] == -1) {
continue;
}
if (currentCity == forbidden || i == forbidden) {
continue;
}
path.push(i);
visited[i] = true;
dfs(path, visited, i, distance + maze[currentCity][i], target, forbidden);
visited[i] = false;
path.pop();
}
}
private void initVisited(boolean[] visited) {
for (int i = 0; i < visited.length; i++) {
visited[i] = false;
}
}
}
查看原帖
点赞 1
相关推荐
01-14 16:23
广州商学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招 / 实习投递,你最焦虑的一件事 #
5260次浏览 70人参与
# HR问:你期望的薪资是多少?如何回答 #
80165次浏览 680人参与
# 神州信息求职进展汇总 #
4734次浏览 74人参与
# 今年找实习到底有多难? #
2778次浏览 31人参与
# 27届求职交流 #
21813次浏览 432人参与
# 今天你投了哪些公司? #
3981次浏览 101人参与
# 26届求职交流 #
10982次浏览 295人参与
# 工作丧失热情的瞬间 #
366792次浏览 2557人参与
# 快手求职进展汇总 #
737714次浏览 7115人参与
# 双非能在秋招上岸吗? #
378313次浏览 1875人参与
# 国企/银行/研究所公司爆料 #
195213次浏览 900人参与
# 三月的小目标 #
32078次浏览 600人参与
# 实习要如何选择和准备? #
147896次浏览 1569人参与
# 交出你的校招焚诀 #
22591次浏览 340人参与
# 听劝,这个公司值得去吗 #
678962次浏览 2000人参与
# 求职遇到的搞笑事件 #
165398次浏览 902人参与
# 面试___岗的必刷题单 #
25207次浏览 459人参与
# 哪些公司开暑期实习了? #
41231次浏览 331人参与
# 面试中,你被问过哪些奇葩问题? #
89098次浏览 851人参与
# 你觉得mentor喜欢什么样的实习生 #
51849次浏览 1011人参与
# 24秋招避雷总结 #
954121次浏览 7052人参与
