kuangbin 1B简单bfs(模板题)

BFS常见模板题(初学BFS推荐,附例题由浅入深) 本人为一名普通二本学校自动化专业的大二学生,对编程有着少许兴趣。 最近觉得BFS类型题目不太擅长,就在网上查了些资料,写了几道较为基础的BFS题目,想写一篇博客作为学习笔记。希望这篇博客能让你有所收获。 BFS类题目:主要考查对队列(queue)的掌握。 First question:馋嘴羊 BFS思路(可能会比较抽象,建议结合代码理解): 第一步:输入矩阵、开始吃草位置 第二步:判断开始吃草位... 阅读详情
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, south, east, west, up or down. You cannot move diagonally and the maze is surrounded by solid rock on all sides.

Is an escape possible? If yes, how long will it take?
Input
The input consists of a number of dungeons. Each dungeon description starts with a line containing three integers L, R and C (all limited to 30 in size).
L is the number of levels making up the dungeon.
R and C are the number of rows and columns making up the plan of each level.
Then there will follow L blocks of R lines each containing C characters. Each character describes one cell of the dungeon. A cell full of rock is indicated by a '#' and empty cells are represented by a '.'. Your starting position is indicated by 'S' and the exit by the letter 'E'. There's a single blank line after each level. Input is terminated by three zeroes for L, R and C.
Output
Each maze generates one line of output. If it is possible to reach the exit, print a line of the form
Escaped in x minute(s).

where x is replaced by the shortest time it takes to escape.
If it is not possible to escape, print the line
Trapped!
Sample Input
3 4 5
S....
.###.
.##..
###.#

#####
#####
##.##
##...

#####
#####
#.###
####E

1 3 3
S##
#E#
###

0 0 0
Sample Output
Escaped in 11 minute(s).
Trapped!



分析:一:注意方向,有上下 东西南北 一共六个方向,千万不要遗漏。
二 : 在判断是否能走的时候  '.'  和 'E'  是 或者 的关系。

代码:
#include<iostream>
#include<cstdio>
#include<string.h>
#include<math.h>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
const int INF = 100000000;
int mx[6] = { 0,0,1,0,-1,0 };
int my[6] = { 0,0,0,1,0,-1 };
int mz[6] = { -1,1,0,0,0,0 };
struct Point {
	int x;
	int y;
	int z;
};
int L, R, C;
char maze[30][30][30];
int ans[30][30][30];
int main()
{
	while (cin >> L >> R >> C) {
		memset(maze, 0, sizeof(maze));
		memset(ans, 0, sizeof(ans));
		int l1, l2, r1, r2, c1, c2;
		if (L == 0) {
			break;
		}
		for (int i = 0; i<L; i++) {
			for (int j = 0; j<R; j++) {
				for (int k = 0; k<C; k++) {
					cin >> maze[i][j][k];
					ans[i][j][k] = INF;
					if (maze[i][j][k] == 'S') {
						l1 = i;
						r1 = j;
						c1 = k;
					}
					if (maze[i][j][k] == 'E') {
						l2 = i;
						r2 = j;
						c2 = k;
					}
				}
			}
		}
		ans[l1][r1][c1] = 0;
		queue<Point> que;
		Point temp = { c1,r1,l1 };
		que.push(temp);
		while (que.size()) {
			Point flag = que.front();
			que.pop();
			if (maze[flag.z][flag.y][flag.x] == 'E') {
				break;
			}
			for (int i = 0; i < 5; i++) {
				int dx = flag.x + mx[i];
				int dy = flag.y + my[i];
				int dz = flag.z + mz[i];
				if (dx < C && dx >= 0 && dy < R && dy >= 0 && dz < L && ans[dz][dy][dx] == INF) {
					if (maze[dz][dy][dx] == '.' || maze[dz][dy][dx] == 'E') {
						temp = { dx,dy,dz };
						que.push(temp);
						ans[dz][dy][dx] = ans[flag.z][flag.y][flag.x] + 1;
					}
				}
			}
		}

		if (ans[l2][r2][c2] != INF)
			printf("Escaped in %d minute(s).\n", ans[l2][r2][c2]);
		else
			printf("Trapped!\n");
	}
	return 0;
}




开发simulink 以及stm32半物理仿真碰到的问题,以及处理方法,Error:External Mode Open Protocol Connect command failed(实测有用) 串口实现的,但是在测试的时候发现,这个串口可以正常发送和接收数据,但是一旦把这个串口只让其进行版物理仿真就报错。直接刷写程序是可以的,最后查到问题了。我要实现半物理仿真,就是通过matlab实现可以直接控制stm32板子,实际上是通过xcp on。然后点击simulink上的观测按钮就可以直接和stm32平台进行通讯了。3,还是使用串口3,但是重新需要设置一下com口,因为重新插拔了一下,按照这个设置方法就可以。2,重新加载ioc文件。 阅读详情

相关推荐

Qt C++:跨平台开发利器

摘要: Qt C++是基于C++的跨平台开发框架,通过元对象系统、信号槽机制及模块化架构实现"一次编写,多端部署"。核心特性包括: 跨平台能力:覆盖桌面(Windows/macOS/Linux)、移动端(iOS/Android)、嵌入式及WebAssembly; 信号与槽:替代传统回调,实现对象间高效通信; UI组件库:200+预制组件支持QSS样式定制; 工具链:Qt Creator集成开发环境提供可视化设计、调试及多平台编译。 广泛应用于工业控制、车载系统、医疗设备及跨平台应用开发,

2202_75382767的博客 1681

【BFS】BFS系列模板

走迷宫 题目传送门 题目描述: 给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。 最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。 数据保证(1, 1)处和(n, m)处的数字为0,且一定至少存在一条通路。 输入格...

小明的博客 1468

SMR实战指南:从GWAS数据到eQTL分析的完整流程

本文提供了基于汇总数据的孟德尔随机化(SMR)实战指南,详细解析了如何从GWAS汇总数据出发,整合eQTL数据,完成从数据准备、BESD格式转换到最终SMR与HEIDI分析的完整流程。文章重点阐述了核心操作步骤、常见避坑技巧与结果解读,旨在帮助遗传学研究者高效掌握这一分析基因表达与复杂性状潜在因果关系的强大工具。

weixin_29246195的博客 1065

【算法模板】BFS秒杀模板,2024年最新Python面试基础

判断这个数是否小于两个节,小于就返回其有多少个就返回多少个。#统计1到n-1的每一个节点。#用for循环把每个相连的节点放入里面,构建出我们想要的图。#用一个数组对每个节点的入度进行统计#先把入度为一的节点放入队列中,也就是上图中最外面的那些节点。res = None#使用队列进行循环#进行多源BFS#出队并且对每一层的节点放入到res数组中#对每个节点的子节点进行循环判断#因为我们是先删除最外面的节点,但是随着外面的节点被删除,则和外面连接的节点的入度也会随着减一。

2301_82242273的博客 1268

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4658

大模型系统构建的“三驾马车”——Prompt、Context与Harness工程

在LLM应用开发的早期阶段,我们热衷于比拼“提示词”的精妙程度。那时,一个精心构造的思维链CoT就能让模型的表现提升10%以上。随着大模型从“玩具”走向“生产系统”,我们逐渐意识到:单一的 Prompt 只是起点,而非终点。 真正的工业级应用,需要构建一套三层递进的工程体系——Prompt Engineering、Context Engineering 和 Harness Engineering。

西木风落 604

Leetcode 994. 腐烂的橘子(BFS模板题)

Description 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4 示例 2: 输入...

sunlanchang的博客 561

RenderDoc实战:5分钟搞定安卓Vulkan应用抓帧(含常见连接失败排查)

本文详细介绍了如何使用RenderDoc工具对安卓Vulkan应用进行抓帧分析,包括环境配置、完整抓帧流程及常见连接问题的解决方案。通过实战案例和高级技巧,帮助开发者快速定位渲染问题和性能瓶颈,提升移动图形开发效率。

weixin_28318011的博客 281

POJ 2251 Dungeon Master 三维空间BFS(基础题)

B - Dungeon Master POJ - 2251 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute...

Xuedan_blog的博客 342

C# WinForm和Sherlock进行对接

文章目录 前言 一、使用步骤 二、使用步骤 1.引入库 2.读入数据 总结 前言 本人公司最近在做一款瑕疵检测的视觉项目,项目中利用Sherlock从相机中取图和对图像进行视觉处理,然后将图像和数据传输到项目中。这过程中软件需要和Sherlock进行图像和数据的传递,这就需要WinForm和Sherlock进行对接,但我在网上查找了许久能用上的资料十分有限,所以我决定写下这篇文章,来做一次总结,同时也希望能帮助到同样在为此问题困扰的你。 一、使用步骤 废话不...

adminmmrt的博客 3221

1000Base-T1协议解读(基于802.3bq-2016 和Test Suite)

1000Base-T1是由一对双绞线实现全双工传输的以太网标准,采用PAM3编码方式(-1,0,1),编码后的实际传输符号速率为750Mbps。该标准的车载最大传输距离可达15米,主要应用于汽车产品开发过程。测试过程示波器要求带宽≥2G,采样率≥7.5Gbps,网分带宽≥1G。

qflook的博客 5331

广搜总结(Kuangbin 搜索专题)

B - Dungeon MasterPOJ - 2251 这道题就是广搜模板题,只是变换了一些条件,例如变成三维的。思路和广搜题目思路一样。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> ...

cjh1459463496的博客 238

【STK】手把手教你利用STK进行关联分析仿真01-STK/CAT模块介绍

今天主要介绍接近分析工具CAT。

weixin_44184852的博客 1105

AC自动机模板题

AC自动机学习博客   AC自动机理解要点:     1)fail指针指向的是每个节点,在字典树上和这个节点后缀相同的最长单词,每次都这样匹配,必定不会漏过答案。     2)字典树建立后,会在bfs求fail阶段把字典树变成一个字典树图(不知道理解的对不对),就是把字典树的末尾节点再往下添加一层,并且连接到fail指针指向的相同位子的儿子。    两道模板题和AC代...

weixin_30632883的博客 152

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[kuangbin带你飞]专题六-生成最小树

先简单说一下,生成最小树一般常用两种算法,一种是prim另一种是kruskal,两种算法也各有利弊,比如说prim编程比较复杂一些而kruskal编程则相对容易一些,但是时间复杂度却差了些。 prim跟dijkstra差不多,简单来说prim适合稠密图,而kurskal则适合稀疏图。 文章目录POJ - 1251(生成最小树模板题) POJ - 1251(生成最小树模板题) 这个题也就是把字母转换...

xxxxxiao123的博客 286

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

kuangbin专题十 HDU2389(Hopcroft-Carp的算法模板)

题意: 第一行T表示多少组数,第二行t代表还有多少时间开始下雨,然后是 N个访客,接下来N行是 每个访客的位置(x1,y1)和他的移动速度,接下来M行 代表雨伞数目,接下来M行表示各个雨伞的位置(x2,y2),问在下雨前 最多有多少人能够拿到雨伞(两个人不能共用一把伞)。 题解: 我用匈牙利跑的结果超时了,然后看题解才知道这道题是Hopcroft-Carp算法的模板题,然后就跑

Start_to_crazy的博客 802

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【网络流之最大流】POJ1273-Drainage Ditche【模板题】

题目链接:http://poj.org/problem?id=1273 这是一道网络流的入门题,用来理解最大流很好。 这个题目我是看的bin神专门为我们这些歌渣渣写的最大流入门博客学的;可以去膜拜一下。链接:http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117636.html (里面的几张图看起来很凌乱的样子,主要看代码就好了。。。)

wlxsq的专栏 2685

「kuangbin带你飞」专题十七 AC自动机

layout: post title: 「kuangbin带你飞」专题十七 AC自动机 author: "luowentaoaa" catalog: true tags: - kuangbin - 字符串 - AC自动机 传送门 A.HDU2222 Keywords Search 模板题。给出N个单词,后给你一个长串,问长串中有几个单词。 #include<bits/stdc++.h&g...

weixin_30898109的博客 263

[kuangbin带你飞]专题十 匹配问题 二分匹配部分

刚回到家 开了二分匹配专题 手握xyl模板 奋力写写写 终于写完了一群模板题 A hdu1045 对这个图进行 行列的重写 给每个位置赋予新的行列 使不能相互打到的位置 拥有不同的行与列 然后左行右列 边是新的坐标 求最大匹配 #include<stdio.h> #include<string.h> #include<algorithm> #i...

weixin_34194317的博客 127

网络流GAP dinic模板

dinic GAP 草地排水 最大获利 模板

Jacky35 511

bfs常见题型总结

文章目录(一)bfs模板题(二)Flood Fill(三)最短路模型(四)多源bfs (一)bfs模板题 题目描述 给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。 数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。 输入格式

Jefferson__的博客 1401

BFS最短路径问题模板题

在涉及最短路径问题时,应该在不断向外遍历时多加一个记录遍历层数的变量(上题用的时step);如果说DFS是一条在地图上的贪吃蛇,一条道走到黑,直到走不通再return回去直到能走通,那么BFS就是以起点为中心不断向外扩散的水波一层层地向外蔓延。

ygklwyf的博客 293

【算法 | 广度优先搜索】5道BFS题(解析+代码)

我们可以将广度优先搜索理解为“水波扩散”,想象一下,你在一个平静的湖面上扔了一块石头,石头落入水面的那一点,就像是广度优先搜索的起始节点。石头落水后,水面会形成一圈圈扩散开去的波纹,每一圈波纹就像是从起始节点开始,经过相同步数可以到达的所有节点。

翼同学 2847

图论:BFS算法题模板

就像给每个探索点贴"第几步到达"的标签。

qq_45121547的博客 388

3D迷宫逃生

You are trapped in a 3D dungeon and need to find the quickest way out!The dungeon is composed of unit cubes which may or may not be filled with rock.It takes one minute to move one unit north, south, ...

小糊涂的博客 503

3D dungeon(BFS)

描述 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, s...

PleasantlY1的博客 607
上一篇: A : easy dfs
下一篇: C : easy BFS (have a little trap)
mwhybmj
博客等级 码龄10年 8粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值