公司域名查询网站/保定seo推广外包

公司域名查询网站,保定seo推广外包,php动态网站开发答案,软件开发商是什么意思一,走迷宫 1.题目描述: 给定一个 NMNM 的网格迷宫 GG。GG 的每个格子要么是道路,要么是障碍物(道路用 11 表示,障碍物用 00 表示)。 已知迷宫的入口位置为 (x1,y1)(x1​,y1​),出口位置为 (x…

一,走迷宫

1.题目描述:

给定一个 N×MN×M 的网格迷宫 GG。GG 的每个格子要么是道路,要么是障碍物(道路用 11 表示,障碍物用 00 表示)。

已知迷宫的入口位置为 (x1,y1)(x1​,y1​),出口位置为 (x2,y2)(x2​,y2​)。问从入口走到出口,最少要走多少个格子。

2.实例:

输入第 11 行包含两个正整数 N,MN,M,分别表示迷宫的大小。

接下来输入一个 N×MN×M 的矩阵。若 Gi,j=1Gi,j​=1 表示其为道路,否则表示其为障碍物。

最后一行输入四个整数 x1,y1,x2,y2x1​,y1​,x2​,y2​,表示入口的位置和出口的位置。

1≤N,M≤1021≤N,M≤102,0≤Gi,j≤10≤Gi,j​≤1,1≤x1,x2≤N1≤x1​,x2​≤N,1≤y1,y2≤M1≤y1​,y2​≤M。

示例 1

输入

5 5 
1 0 1 1 0
1 1 0 1 1 
0 1 0 1 1
1 1 1 1 1
1 0 0 0 1
1 1 5 5 

输出

8

3.思路:

  1. 输入处理:读取输入数据并转换为迷宫矩阵。

  2. 坐标转换:将入口和出口的位置转换为从0开始的索引,方便数组操作。

  3. 障碍物检查:直接检查入口和出口是否为障碍物,如果是则立即返回-1。

  4. BFS初始化:使用队列来管理待处理的节点,距离数组记录每个节点的最短步数。

  5. BFS遍历:从入口开始,逐层扩展遍历所有可能的路径,每次处理一个节点时检查其四个方向,更新可达节点的距离并加入队列。找到出口时立即输出结果,否则遍历结束后返回-1。

4:代码:

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[][] maze = new int[n][m];// 读取迷宫数据for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {maze[i][j] = scanner.nextInt();}}// 读取起点和终点坐标并转换为0-based索引int x1 = scanner.nextInt() - 1;int y1 = scanner.nextInt() - 1;int x2 = scanner.nextInt() - 1;int y2 = scanner.nextInt() - 1;// 检查起点或终点是否为障碍物if (maze[x1][y1] == 0 || maze[x2][y2] == 0) {System.out.println(-1);return;}// 处理起点和终点相同的情况if (x1 == x2 && y1 == y2) {System.out.println(1);return;}// 初始化距离数组和队列int[][] dist = new int[n][m];for (int[] row : dist) {Arrays.fill(row, -1);}dist[x1][y1] = 1;Queue<int[]> queue = new LinkedList<>();queue.add(new int[]{x1, y1});// 四个方向移动的增量int[][] directions = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};// BFS遍历while (!queue.isEmpty()) {int[] current = queue.poll();int x = current[0];int y = current[1];for (int[] dir : directions) {int nx = x + dir[0];int ny = y + dir[1];// 检查新坐标是否在迷宫范围内if (nx >= 0 && nx < n && ny >= 0 && ny < m) {// 检查是否是道路且未被访问过if (maze[nx][ny] == 1 && dist[nx][ny] == -1) {dist[nx][ny] = dist[x][y] + 1;// 检查是否到达终点if (nx == x2 && ny == y2) {System.out.println(dist[nx][ny]);return;}queue.add(new int[]{nx, ny});}}}}// 无法到达终点System.out.println(-1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ISIS-3 LSDB链路状态数据库同步

上一章我们介绍了ISIS的邻居建立关系以及ISIS的路由器角色有哪些,在不同的网络类型当中建立邻居关系有什么不同,并且以实验案例抓包的形式给大家进一步介绍了建立的过程。 这一章我们来介绍ISIS中是如何实现链路状态数据库同步的,与OSPF的链路状态同步有什么不同,在不同网络类…

Opencv计算机视觉编程攻略-第三节 图像颜色处理

第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较&#xff0c;其中注意BGR颜色空间不连续&#xff0c;不利于颜色提取和区分&#xff0c;转换到Lab空间&#xff1a; int getColorDistance(const cv::Vec3b& c…

BoomCut AI 技术创建本地化的营销视频

目录 视频翻译实验 交换实验 数字人实验 核心功能与技术亮点 适用场景 BoomCut 提供用于视频翻译、数字人等的 AI 技术,以快速创建本地化的营销视频 视频翻译实验 电影电影哪吒之魔童降世换成西班牙语

论华为 Pura X 折叠屏性能检测

在科技浪潮中&#xff0c;折叠屏手机以其创新形态掀起市场热潮。华为 Pura X 作为华为最新折叠手机&#xff0c;承载前沿科技与精湛工艺&#xff0c;成为行业焦点。它融合先进折叠屏技术与优质材质&#xff0c;致力于打破传统手机使用边界&#xff0c;为用户开启全新体验。但产…

【蓝桥杯每日一题】3.25

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x “OJ超时不是终点&#xff0c;是算法在提醒你该优化时间复杂度了&#xff01;” 目录 3.25 差分数组 一、一维差分 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a;…

3.25学习总结 抽象类和抽象方法+接口+内部类+API

抽象类和抽象方法&#xff1a; 有抽象方法&#xff0c;那么类肯定是抽象类。父类不一定是抽象的&#xff0c;但如果父类中有抽象方法那一定是抽象类。 如果子类中都存在吃这个行为&#xff0c;但吃的具体东西不同&#xff0c;那么吃这个行为定义在父类里面就是抽象方法&#x…

全面系统梳理多模态LLM对齐算法

1.alignment算法发展时间轴 2.MLMM alignment结构图 3.目前alignment策略常见的损失函数形式 4.MLLM对齐数据构造与现有数据总结

广告推荐算法 - 学习笔记

文章目录 1、前言2、学习笔记2.1、什么是计算广告系统&#xff1f; 1、前言 本篇博客&#xff0c;是我用来记录学习广告推荐算法的一些笔记和总结。 参考内容&#xff1a; 1、王喆&#xff1a;"深度"学习计算广告 2、deepseek 2、学习笔记 2.1、什么是计算广告系统…

ENSP学习day10

NAT地址转换技术&#xff08;一&#xff09; NAT&#xff08;Network Address Translation&#xff09;地址转换技术是一种在计算机网络中常用的技术&#xff0c;在数据包从一个网络传输到另一个网络时&#xff0c;会对数据包中的源IP地址和目的IP地址进行修改的过程。这种技术…

Swift 二分法求函数的近似解

在实际开发中会遇到一些工程问题&#xff0c;需要求解复杂函数方程的问题。使用传统的数学方法比较难以处理。本文将使用二分法不断获取一个函数的近似解。 二分法&#xff1a;其基本思想是利用函数在某个区间内的连续性&#xff0c;通过不断缩小区间范围来逼近方程的解。 算法…

stanley 路径跟踪控制算法

文章目录 写在前面的话算法思路核心代码1 路径发布2 获取车子当前位置3 预瞄路径点4 计算航向误差5 计算横向误差 完整控制代码演示视频 写在前面的话 轨迹跟踪 Trajectory Tracking 和 路径跟踪 Path Following 是机器人控制和自动驾驶领域中的两个核心概念&#xff0c;尽管它…

Qt中通过QLabel实时显示图像

Qt中的QLabel控件用于显示文本或图像&#xff0c;不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示&#xff1a; Widgets_Test.h&#xff1a; class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…

pyQt学习笔记——Qt资源文件(.qrc)的创建与使用

Qt资源文件&#xff08;.qrc&#xff09;的创建与使用 1. 选择打开资源2. 创建新资源3. 添加资源文件夹4. 选择要加载的图片文件5. 编译resource.qrc文件6. 替换PySlide6为PyQt57. 其他说明 1. 选择打开资源 在Qt项目中&#xff0c;可以通过windowIcon点击选择打开资源。 2. 创…

光电效应及普朗克常数的测定数据处理 Python实现

内容仅供参考&#xff0c;如有错误&#xff0c;欢迎指正&#xff0c;如有疑问&#xff0c;欢迎交流。 因为我不会Excel所以只能用Python来处理 祝大家早日摆脱物理实验的苦海 用到的一些方法 PCHIP &#xff08;分段三次埃尔米特插值多项式&#xff09; 因为实验时记录的数…

2025最新3个wordpress好用的主题

红色大气的wordpress企业主题&#xff0c;适合服务行业的公司搭建企业官方网站使用。是一款专为中小企业和个人开发者设计的WordPress主题&#xff0c;旨在提供专业的网站构建解决方案。 通过此WordPress主题&#xff0c;用户可以轻松创建和维护一个专业的企业网站&#xff0c…

OLLVM 增加 CC++ 字符串加密功能

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 当我们如果没有对字符串进行加密&#xff0c;使用 IDA 反汇编一下 so 可以看到 C 代码中的字符串就直接暴露了。 字符串加密原理 sobf.c #include <…

自动化逆向框架使用(Objection+Radare2)

1. 工具链架构与核心优势 1.1 动静结合逆向体系 graph LR A[动态分析] -->|Objection实时Hook| B[关键点定位] B --> C[行为数据捕获] D[静态分析] -->|Radare2深度解析| E[控制流重建] E --> F[漏洞模式识别] B --> F C --> F 组合优势对比&…

Docker-Volume数据卷详讲

Docker数据卷-Volume 一&#xff1a;Volume是什么&#xff0c;用来做什么的 当删除docker容器时&#xff0c;容器内部的文件就会跟随容器所销毁&#xff0c;在生产环境中我们需要将数据持久化保存&#xff0c;就催生了将容器内部的数据保存在宿主机的需求&#xff0c;volume …

单片机和微控制器知识汇总——《器件手册--单片机、数字信号处理器和可编程逻辑器件》

目录 四、单片机和微控制器 4.1 单片机(MCU/MPU/SOC) 一、定义 二、主要特点 三、工作原理 四、主要类型 五、应用领域 六、选型与设计注意事项 七、发展趋势 4.2 数字信号处理器(DSP/DSC) ​编辑​编辑 一、定义 二、工作原理 三、结构特点 四、应用领域 五、选型与设计注…

高数下---8.1平面与直线

目录 平面的确定 直线的确定 若要求某一直线或平面就根据要素来求。 例题 平面中的特殊情况 平面中的解题思路 直线的解题思路 平面的确定 两要素 一 一点 二 倾斜角 即法向量 点法式 可化为一般式 Ax By Cz D 0; (A,B,C) 即法向量&#xff1b; 改变D 即…