欧洲杯直播app下载_雨燕直播APP

您现在的位置是:首页 > 亚洲杯 > 正文

亚洲杯

[蓝桥杯2018决赛]迷宫与陷阱_[蓝桥杯 2018 国 c] 迷宫与陷阱-CSDN博客

admin2024-04-09亚洲杯22
[蓝桥杯2018决赛]迷宫与陷阱_[蓝桥杯 2018 国 c] 迷宫与陷阱-CSDN博客

  以下是使用Java语言解决蓝桥杯走迷宫问题的代码:

  ```java

  import java.util.Scanner;

  public class Main {

  static int n, m, p;

  static char[][] map;

  static boolean[][] vis;

  static int[][] dir = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; // 上右下左四个方向

  public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);

  n = 10; // 迷宫的行数

  m = 10; // 迷宫的列数

  p = 16; // 迷宫的字符串长度

  map = new char[n][m];

  vis = new boolean[n][m];

  for (int i = 0; i < n; i++) {

  String s = sc.next();

  for (int j = 0; j < m; j++) {

  map[i][j] = s.charAt(j);

  }

  }

  if (dfs(0,0)) {

  System.out.println("YES");

  } else {

  System.out.println("NO");

  }

  }

  public static boolean dfs(int x, int y) {

  if (x == n - 1 && y == m - 1) { // 到达终点

  return true;

  }

  vis[x][y] = true; // 标记已经走过

  for (int i = 0; i < 4; i++) { // 枚举四个方向

  int nx = x + dir[i][0];

  int ny = y + dir[i][1];

  if (nx >= 0 && nx < n && ny >= 0 && ny < m && !vis[nx][ny] && map[nx][ny] == map[x][y]) { // 判断是否越界、是否走过、是否可以走

  if (dfs(nx, ny)) { // 搜索下一个位置

  return true;

  }

  }

  }

  return false;

  }

  }

  ```

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~