第十届蓝桥杯 JavaA 迷宫

2023-11-10

第十届蓝桥杯 JavaA 迷宫


在这里插入图片描述
在这里插入图片描述


法一:
思路:
bfs,path记录路径。
/**
 * 1.编程https://www.cnblogs.com/woxiaosade/p/10592061.html
 * 2.观察https://www.cnblogs.com/yzm10/p/10595165.html
 * 
 * @description TODO
 * @author frontier
 * @time 2019年4月9日 上午11:19:05
 *
 */
class Node {
	int step;
	String path;
	int x, y;

	public Node(int step, String path, int x, int y) {
		super();
		this.step = step;
		this.path = path;
		this.x = x;
		this.y = y;
	}
}

public class D迷宫 {
	static Scanner in = new Scanner(System.in);
	static int n, m;
	static char[][] maze = new char[60][60];
	static boolean[][] vis = new boolean[60][60];
	static int[] X = { 1, 0, 0, -1 };// 增量数组,方向向量,直接按字典序排列
	static int[] Y = { 0, -1, 1, 0 };
	static String[] d = { "D", "L", "R", "U" };

	public static void main(String[] args) throws FileNotFoundException {
		Scanner in = new Scanner(new File("src/JavaA/s10/5.txt"));
		n = in.nextInt();
		m = in.nextInt();
		for (int i = 1; i <= n; ++i) {
			String temp = in.next();
			for (int j = 1; j <= m; ++j) {
				maze[i][j] = temp.charAt(j - 1);
			}
		}
		bfs();
	}

	static boolean check(int x, int y) {
		if (x < 1 || x > n || y < 1 || y > m)
			return false;
		if (vis[x][y] || maze[x][y] == '1')
			return false;
		return true;
	}

	static void bfs() {
		Queue<Node> q = new LinkedList<Node>();
		q.offer(new Node(0, "", 1, 1));
		while (!q.isEmpty()) {
			Node top = q.poll();
			vis[top.x][top.y] = true;
			if (top.x == n && top.y == m) {
				System.out.println(top.step + " " + top.path);
				return;
			}
			for (int i = 0; i < 4; ++i) {
				int newX = top.x + X[i];
				int newY = top.y + Y[i];
				if (check(newX, newY)) {
					Node temp = new Node(top.step + 1, top.path + d[i], newX, newY);
					q.offer(temp);
				}
			}
		}
	}
}

法二:
思路:
肉眼走迷宫。
参考:

肉眼走迷宫

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十届蓝桥杯 JavaA 迷宫 的相关文章

  • nRF52832学习记录(九、SAADC)

    nRF52xx 处理器中的ADC为一个逐次逼近的模拟数字转换器 所有nRF52xx 系列处理器的内部 ADC 称为 SAADC 目录 nRF52xx SAADC基础介绍 SAADC采样示例 SAADC EasyDMA 缓冲采样示例 SAAD
  • 记一次容器环境下出现 Address not available

    困惑的源地址 pod 创建后一段时间一直是正常运行 突然有一天发现没有新的连接创建了 业务上是通过 pod A 访问 svc B 的 svc name 的方式 进入 pod 手动去 wget 一下 发现报错了 Address not ava
  • 思科 计算机网络 第2章测试&考试 答案

    拓展 思科交换机常用命令及配置 测验 当通过 Cisco CLI 配置主机名时 哪三项命名约定将作为指南的一部分 选择三项 A 主机名的长度应少于 64 个字符 B 主机名应全部用小写字符表示 C 主机名应不包含空格 D 主机名应该以一个特
  • 球面如何切分成多个扇面?

    近期在研究使用D3D开发三维显示场景 发现D3D支持的纹理图的大小有限制 这种限制一般由D3D引擎 显卡驱动和显卡硬件共同决定 使用如下代码可以获取当前系统能支持最大纹理大小 D3DCAPS9 caps m pd3dDevice gt Ge
  • Linux 下计算圆周率

    转自 http blog csdn net zhuying linux article details 7298465 oracle sor sys time echo scale 5000 4 a 1 bc l q 输出的是小数点后 位的
  • 防治交换机窃听技术_等保2.0建设基本要求(技术部分)解读(下)

    网御星云对等保2 0基本要求技术部分 以四级为例 对安全计算环境 安全管理中心的控制点逐项解读内容如下 01 安全计算环境 1 1 身份鉴别 a 应对登录的用户进行身份标识和鉴别 身份标识具有唯一性 身份鉴别信息具有复杂度要求并定期更换 b
  • rpgmv存档修改html_使用HTML5存档网站内容更改

    rpgmv存档修改html The majority of web content today exists in a state of retrograde amnesia Created in a moment content is c
  • 从GAN到WGAN及WGAN-GP

    20200910 0 引言 最近看了PassGAN的代码 他是使用了WGAN GP的代码作为GAN的框架 来进行密码生成 由此引出了对GAN的学习 在GAN的研究中 有一个方向就是研究如何使GAN更加稳定的训练 在此之中 WGAN和WGAN
  • 多维时序

    多维时序 Matlab实现LSTM Adaboost和LSTM多变量时间序列预测对比 目录 多维时序 Matlab实现LSTM Adaboost和LSTM多变量时间序列预测对比 预测效果 基本介绍 模型描述 程序设计 参考资料 预测效果 基
  • 【linux线程(壹)】——初识线程(区分线程和进程,线程创建的基本操作)

    作者 努力学习的少年 个人简介 双非大二 一个正在自学c 和linux操作系统 写博客是总结知识 方便复习 目标 进大厂 如果你觉得文章可以的话 麻烦你给我点个赞和关注 感谢你的关注 目录 1 线程和进程 1 1 进程的基本概念 1 2 线
  • JAVA多线程的三种创建方式

    一 概述 在JAVA中 用Thread类代表线程 所有线程对象 都必须是Thread类或者Thread类子类的实例 每个线程的任务就是执行一段顺序执行的代码 JAVA使用线程执行体来容纳这段代码 所以 我们创建线程时 主要是根据实际需求 编
  • FPGA设计:如何用半加器和全加器构成四位全加器

    今天来分享一下关于FPGA设计的文章 如何用半加器和全加器构成四位全加器 首先 我们看一位半加器的代码 1 一位半加器的程序代码及 图 library ieee use ieee std logic 1164 all entity half
  • linux串口编程 gsm,linux 中用n_gsm实现3gpp MUX协议

    n gsm 是一种tty设备上的线路规程 line discipline 来实现3gpp MUX协议 n gsm 实现方法如下 1 kernel配置文件中 打开 CONFIG N GSM y 编译内核 2 cat proc device g
  • KMP算法中next数组的理解

    下面我们对着严老师的代码来一步步分析 next 数组理解 void creat next sstring T int next i 1 next 1 0 j 0 while i
  • MySQL SHOW命令

    文章目录 SHOW命令介绍 SHOW命令用法 常用SHOW命令汇总 常用命令汇总表 服务器运行状态信息 支持的字符集信息 支持的校对规则信息 上一个执行语句的告警信息 上一个执行语句的错误信息 服务器线程信息 用户权限信息 支持的权限列表
  • Android疑难解决-Duplicate class xxx.xxx.xxx found in modules xxx.xxx.xxx

    Duplicate class top zibin luban BuildConfig found in modules jetified Luban 1 1 8 runtime top zibin Luban 1 1 8 and jeti
  • System.Text.Encoding不同字符编码之间进行转换

    System Text Encoding 是 C 中用于处理字符编码和字符串与字节之间转换的类 它提供了各种静态方法和属性 用于在不同字符编码之间进行转换 以及将字符串转换为字节数组或反之 在处理多语言文本 文件 网络通信以及其他字符数据的
  • 每日一道算法题(3)--戳气球问题

    题目 戳气球问题 输入一个包含非负数整数的数组nums代表一排气球 nums i 代表第i个气球的分数 现在 你要戳破所有的气球 请计算出最高的分数 分数的计算规则比较特别 当戳破第i个气球时 可以获得nums left nums righ
  • Python自定义函数的综合应用

    第1关 求最大值函数 编写程序 利用可变长度参数定义一个求任意个数数值的最大值的函数max n a b c 并进行测试 例如 当传入6 9时 输出两个数的最大值 当传入3 9 5 1 12 33 2 10时 输出多个数的最大值 输入任意若干
  • 【经典】环境切换——SpringBoot配置不同环境启用不同的配置文件

    不同环境下切换数据库配置文件 环境切换配置一般在数据库 存储等需要在开发环境和正式环境中进行切换时 避免出错而常用的方式 以下内容以yml文件来举例 我们需要创建两个application文件 application dev yml app

随机推荐

  • SpringCloud利用网关拦截做Token验证(JWT方式)

    关于JWT的内容 请看以下链接 主要看它的原理 以及缺点 https blog csdn net memmsc article details 78122931 步骤1 前端传userName password到后端 后端为springcl
  • Mysql系列(一) - Mysql的架构体系

    目录 前言 MySQL架构图 连接层 编辑 服务层 连接池 缓存 解析器 优化器 执行器 存储引擎层 MyISAM 与 InnoDB 引擎的区别 如何在两种存储引擎中进行选择 系统文件存储层 数据文件 日志文件 错误日志 binglog和慢
  • ARP学习笔记

    ARP学习笔记 简单情况下的ARP 以太网是最普遍的一种计算机局域网技术 以太网有两类 第一类是经典以太网 第二类是交换式以太网 现主要使用交换式以太网 在以太网 局域网 物理连接搭建后 两台终端第一次通信前 将首先进行ARP 地址解析协议
  • SQL 如何查询某一张表某一字段重复次数,以及重复的字段值

    小插曲 如果你们公司想使用spring cloud进行微服务改造 本人提供完整的解决方案 GITHUB 地址 https github com Mranxiaoranran spring cloud sofa QQ 2767855941 我
  • stream流对集合对象里的时间降序排列

    List
  • This XMLfile does not appear to have any style information associated with it. THe document tree is

    This XMLfile does not appear to have any style information associated with it THe document tree is shown below 1 百度翻译 此X
  • STM32在Keil中使用串口助手打印中文字符出现乱码问题

    问题 问题如下 中文字符显示乱码 但数字正常 原因 通常这种在串口助手打印出现乱码情况 无非是波特率设置错误 不对应 就像一个滴水的水龙头 水滴进一个循环开合的容器 双方速率不能很好匹配 一定会出现水滴不能完全滴进容器 或者完全滴进或者完全
  • HTML5夜晚海上轮船动画js特效代码

    下载地址 HTML5夜晚海上轮船动画特效代码 pixi js制作夜空下海面上迷失的轮船航行动画场景特效 dd
  • Netty网络编程(六):搭建websocket服务器

    一 简介 二 netty中的websocket 1 websocket的版本 2 FrameDecoder和FrameEncoder 3 WebSocketServerHandshaker 4 WebSocketFrame 三 netty中
  • gin框架08--Query 和 post form

    gin框架08 Query 和 post form 介绍 案例 说明 介绍 本文主要介绍 Query 和 post form 并配上相关案例加以理解 通过Query方法可以获取url 中 之后的请求参数 通过PostForm方法可以获取到P
  • 迭代和递归的时间复杂度分析

    文章目录 1 迭代 1 1 常数阶 1 2 线性阶 1 3 对数阶 1 4 平方阶 1 5 多个复杂度的顺序组合 1 6 多个复杂度的选择组合 2 递归 3 习题 4 答案 1 迭代 1 1 常数阶 下面算法的时间复杂度为 O 1 O 1
  • 和小伙伴们一起学Unity3D(四)角色移动之Transform

    经过前三章的介绍 我们终于搞定了游戏界面 从本章开始 我将带大家创造游戏世界 作为一个游戏爱好者 最熟悉的莫过于WASD键 它控制着人物行走 带我们认识游戏世界 那么在Unity3D中我们如何控制人物行走移动呢 本章目标 使用Transfo
  • RJ45网口座子上的LED接法详解

    搞硬件的朋友 经常免不了会用到RJ45网口座子 但是你会发现在许多参考设计中 RJ45上的LED接线方式经常各不相同 许多朋友可能并不是很在意这个 认为只要网络通了就行 此外在进行物料替换的时候 通常也只是关注4对差分信号的连接方式 并不怎
  • 2023华为OD机试真题【补种未成活胡杨】

    题目内容 近些年来 我国防沙治沙取得显著成果 某沙漠新种植N棵胡杨 编号1 N 排成一排 一个月后 有M棵胡杨未能成活 现可补种胡杨K棵 请问如何补种 只能补种 不能新种 可以得到最多的连续胡杨树 输入描述 N 总种植数量 M 未成活胡杨数
  • web自动化测试从安装到实战(全)

    1 什么是Web自动化测试 让程序代替人工自动验证web项目功能的过程 预期结果和实际结果的比较 2 为什么要在做Web自动化测试 在较少的时间内运行更多和测试用例 脚本可重复执行 减少人为的错误 克服手工测试的局限 3 在什么场景下适合做
  • XCode 编译ffmpeg

    环境 macOS10 13 3 Xcode9 4 1 FFmpeg4 0 2 准备 brew install sdl2 brew命令如果出错 要能是版本问题 可按以下命令卸载后 重新安装brew usr bin ruby e curl fs
  • git分支切换

    在git中 可利用checkout命令转换分支 该命令的作用就是切换分支或恢复工作树文件 语法为 git checkout 分支名 当参数设置为 b 时 可以在新分支创建的同时切换分支 语法为 git checkout b 分支名 本文操作
  • 计及源-荷双重不确定性的虚拟电厂/微网日前随机优化调度

    目录 1主要内容 1 1 场景生成及缩减 1 2 随机优化调度 2 程序链接 1主要内容 程序主要做的是一个虚拟电厂或者微网单元的日前优化调度模型 考虑了光伏出力和负荷功率的双重不确定性 采用随机规划法处理不确定性变量 构建了虚拟电厂随机优
  • 计算机端口详解(总结)

    计算机端口详解 总结 https blog csdn net qq 17204441 article details 89063083 0x00 什么是端口 0x01 端口的分类 0x02 端口在入侵中的作用 0x03 端口的相关工具 0x
  • 第十届蓝桥杯 JavaA 迷宫

    第十届蓝桥杯 JavaA 迷宫 法一 思路 bfs path记录路径 1 编程https www cnblogs com woxiaosade p 10592061 html 2 观察https www cnblogs com yzm10