蓝桥杯py组入门(bfs广搜)

ops/2024/10/31 12:21:19/

7. 走迷宫

7.走迷宫 - 蓝桥云课

题目描述

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

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

输入描述

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

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

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

1≤N,M≤10^2,0≤Gi,j≤1,1≤x1,x2≤N,1≤y1,y2≤M。

输出描述

输出仅一行,包含一个整数表示答案。

若无法从入口到出口,则输出 −1。

输入输出样例

示例 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

很标准的广搜,深搜的话会爆时间

代码 

python">import queueN = 110
g = [[-1] * N for _ in range(N)]
dist = [[-1] * N for _ in range(N)]
d = [[1,0],[0,1],[-1,0],[0,-1]]n, m = map(int,input().split())
for i in range(1, n + 1):g[i][1 : m + 1] = list(map(int,input().split()))
x1, y1, x2, y2 = map(int,input().split())def bfs():q = queue.Queue()q.put([x1, y1])dist[x1][y1] = 0while not q.empty():x, y = q.get()if x == x2 and y == y2:return dist[x2][y2]for i in range(4):nx = x + d[i][0]ny = y + d[i][1]if nx < 1 or nx > n or ny < 1 or ny > m:continueif g[nx][ny] == 1 and dist[nx][ny] == -1:dist[nx][ny] = dist[x][y] + 1q.put([nx, ny])return -1t = bfs()print(t)

加油


http://www.ppmy.cn/ops/129863.html

相关文章

相机硬触发

PLC 接线图 通过使用PNP光电感应器 实现相机的硬触发 流程&#xff1a;触发相机拍照 然后相机控制光源触发 完成线路连接后 使用MVS 配置相机硬触发参数 通过 pnp传感器控制 硬触发拍照 检测 在2开项目中 不用在点击执行流程 通过PNP传感器就能触发 扩展&#xff1a;

苏州金龙技术创新赋能旅游新质生产力

2024年10月23日&#xff0c;备受瞩目的“2024第六届旅游出行大会”在云南省丽江市正式开幕。作为客车行业新质生产力标杆客车&#xff0c;苏州金龙在大会期间现场展示了新V系V12商旅版、V11和V8E纯电车型&#xff0c;为旅游出行提供全新升级方案。 其中&#xff0c;全新15座V1…

OpenSSH用户枚举漏洞修复——ubuntu升级ssh版本

一、介绍 时不时会爆出来因版本问题导致的&#xff0c;使用不存在的用户名和存在的用户名返回不同信息的信息进行用户名枚举的特性&#xff0c;故要对ssh版本进行升级&#xff0c;改到不受影响的ssh版本。这里用升级到9.9p1的版本来演示。 二、步骤&#xff08;均在root下操作…

k8s_Pod健康检查

Kubernetes 3种探针介绍 LivenessProbe&#xff08;存活探针&#xff09; LivenessProbe 用于检查容器是否仍然活着。如果探针检测到容器已经失去响应&#xff0c;Kubernetes 将重启该容器。这通常用来修复由于内部状态错误或死锁引起的程序失效问题。 作用&#xff1a;检测容器…

Android系统架构

Android系统架构&#xff1a; Android系统架构是一个复杂的、分层的结构&#xff0c;旨在提供高度的灵活性和可扩展性。这个架构可以大致分为以下几个主要层次&#xff1a; Linux Kernel&#xff08;Linux内核&#xff09;&#xff1a; Linux内核是Android系统的底层&#xff0…

专业140+总分410+武汉大学807信号与系统考研经验武大原936电子信息与通信工程,真题,大纲,参考书。

考研专业课807信号与系统(原936)140&#xff0c;总分410&#xff0c;顺利被武汉大学录取&#xff0c;群 里不少同学希望总结一下复习经验&#xff0c;回看这一年有得有失&#xff0c;总结一下希望给大家有些参考。考研还需从自身情况出发&#xff0c;制定适合自己的复习计划&am…

RabbitMQ延迟消息插件安装(Docker环境)

背景&#xff1a;当我们需要使用RabbitMQ发送延迟消息的时候&#xff0c;为了简化延迟消息发送的实现&#xff0c;一般都会给RabbitMQ安装延迟插件"rabbitmq_delayed_message_exchange" 如下会说明使用Docker启动的RabbitMQ容器如何安装延迟消息插件。 1. Docker启动…

信息安全数学基础(37)有限生成交换群

一、定义 有限生成交换群是指存在一个有限集合的元素&#xff08;称为生成元&#xff09;&#xff0c;通过有限次数的加法运算&#xff08;群运算&#xff09;可以生成群中的所有元素。即&#xff0c;若群G存在一个有限子集S&#xff0c;使得G中每一个元素都可以表示为S中元素的…