首页 > 其他分享 >迷宫

迷宫

时间:2023-03-20 20:47:16浏览次数:41  
标签:int 迷宫 next char static new now

迷宫 - 蓝桥云课 (lanqiao.cn)

public class N602 {
	static char[][] m = new char[30][50];
	static char[] d = { 'D', 'L', 'R', 'U' };// 定义这个顺序为字典序答案就是最小字典序
	static int[][] dir = { { 1, 0 }, { 0, -1 }, { 0, 1 }, { -1, 0 } };// 方向数组的序号与上面的对应

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		for (int i = 0; i < 30; i++) {// 输入
			String s = scanner.next();
			for (int j = 0; j < 50; j++) {
				m[i][j] = s.charAt(j);
			}
		}
		bfs();// 广搜
	}

	static void bfs() {
		LinkedList<Node> q = new LinkedList<>();// 定义一个队列
		m[0][0] = '1';// 广搜仅走一次
		q.addLast(new Node(0, 0));// 第一个节点入队
		while (!q.isEmpty()) {
			Node next, now;
			now = q.removeFirst();
			if (now.x == 29 && now.y == 49) {
				System.out.println(now.s);
			}
			for (int i = 0; i < 4; i++) {
				next = new Node(now.x + dir[i][0], now.y + dir[i][1]);
				if (next.x >= 0 && next.x <= 29 && next.y >= 0 && next.y <= 49 && m[next.x][next.y] == '0') {// 符合条件入队
					next.s = now.s + d[i];// 字符串拼接
					q.addLast(next);
					m[next.x][next.y] = '1';
				}
			}
		}
	}
}

class Node {
	int x;
	int y;
	String s;

	public Node(int x, int y) {
		this.x = x;
		this.y = y;
		this.s = "";
	}
}

标签:int,迷宫,next,char,static,new,now
From: https://www.cnblogs.com/ChuenSan/p/17237654.html

相关文章

  • 迷宫问题之bfs
    先来一道简单的迷宫模板题迷宫由n行m列的单元格组成,每个单元格要么是空地,要么是障碍物。其中1表示空地,可以走通,2表示障碍物。输出从左上角到右下角的最短路径长度。......
  • bfs走迷宫
      #include<iostream>#include<cstring>#include<queue>constintN=110;intn,m;typedefpair<int,int>PII;intg[N][N];//存图intd[N][N];//记录距离PIIq......
  • 基于形态学处理算法的迷宫路线搜索matlab仿真
    1.算法描述形态学是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质的形状特征,如......
  • 基于形态学处理算法的迷宫路线搜索matlab仿真
    1.算法描述       形态学是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本......
  • 迷宫问题
    (啊哈哈哈鸡汤来咯)设有一个N×N(2<=N<=10)方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中分别放0和1,0表示可通,1表示不能,入口和出口处肯定是0.迷宫走的规则如下所......
  • dfs入门,一个简单的迷宫问题
    AcWing走迷宫问题给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1......
  • 迷宫危机“分支语句”
    今日份学习“分支语句”本文简介:该篇文章介绍分支语句,主要讲解其用法和注意事项,让我们使用该语句上有更好的概念(不再犯选择困难症......
  • AC.844 走迷宫
     #include<iostream>#include<queue>#include<utility>//pair容器的头文件#include<cstring>//memsetusingnamespacestd;constintN=1e2+7;intn,m;intg[......
  • P2489 [SDOI2011]迷宫探险 题解
    题意简述:一个\(n\timesm\)的带墙体单入口多出口迷宫中有\(k\)个陷阱,陷阱分为有害或无害,有害会使人掉血,给出所有垃圾的有害与无害的所有排列组成的概率,给定人的血量,求......
  • 迷宫
    迷宫题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。下图给出了一个迷宫的平面图,其中标记为1的为障碍,标记为0的为可以通行的地方。......