POJ 3984 迷宫问题

迷宫问题(C语言源程序) 嗯,这个写的真的不好,只是可以运行罢了,如果有好心人愿意指点的话,非常乐意. 立即下载

迷宫问题

https://vjudge.net/problem/POJ-3984
定义一个二维数组:

int maze[5][5] = {

0, 1, 0, 0, 0,

0, 1, 0, 1, 0,

0, 0, 0, 0, 0,

0, 1, 1, 1, 0,

0, 0, 0, 1, 0,

};

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

Input

一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。

Output

左上角到右下角的最短路径,格式如样例所示。

Sample Input

0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

Sample Output

(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)

C++

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int n = 5, m = 5;
int maze[5][5];
bool vis[5][5];
int dir[4][2] = {0,1,1,0,0,-1,-1,0}; 
int path[50];
int ans;

int dfs(int x, int y, int step)
{
	if(x == 4 && y == 4){
		ans = step;
		return 1;
	}
	vis[x][y] = true;
	for(int i = 0; i < 4; i ++)
	{
		int tx = x + dir[i][0];
		int ty = y + dir[i][1];
		if(tx >= 0 && tx < n && ty >= 0 && ty < m && !vis[tx][ty])
		{
			if(maze[tx][ty] != 1)
			{
				path[step] = tx;
				path[step + 1] = ty;
				if(dfs(tx, ty, step +2))
					return 1;
			}		
		}
	}
	return 0;
}

int main()
{
	for(int i = 0; i < n; i ++){
		for(int j = 0; j < m; j ++){
			scanf("%d", &maze[i][j]);
		}
	}
	dfs(0, 0, 0);
	printf("(0, 0)\n");
	for(int i = 0; i < ans; i += 2){
		printf("(%d, %d)\n", path[i], path[i + 1]);
	}
	return 0;
}
一个响应ping包延迟偏大的问题 前段时间客户反馈一个使用pc上的命令行ping无线设备(WiFi4)时,设备平均响应时间(测试时长2小时,1秒Ping一次)相比其它机型偏慢的问题,并上传上具体的时间的Log.从log中看到,大多数包的响应还是比较快的,只是个别响应时间较长,且响应时间长的包时间几乎都是一样的100多ms.如下是部分响应时间截图. 整个2小时的测试时间里,总是时不时的出这么上102,104ms的响应时间,这直接导致了平均响应时间被拉大.于是本地测试,也发现了类似的延迟.本地测试时,现象略有... 阅读详情

相关推荐

大开眼界的十大开源人工智能项目

这是一个强大的开源工具,能让你在不同框架之间自由切换,无需重写代码。它是一个开源工具,能用简单的SQL语言同时处理数据和AI模型,让一切变得有序而高效。Rasa是我开发智能聊天机器人时的首选,它让你轻松掌控机器人对话的每个细节。我经常用它快速验证模型在不同框架下的表现,省去了大量烦躁的调试过程。最近发现的Vapi是一个以API方式提供的语音AI工具,开发者友好程度超乎想象。KNIME是一个以拖拽方式构建数据分析流程的开源工具,仿佛是数据界的乐高积木。它像个忠诚的守门员,确保你的模型始终健康运行。

wjianwei666的专栏 1103

POJ-3984-迷宫问题

这题是bfs的基础性题目,但是基础才显得很重要。 题目中的要求是输出每一个我们走过的点,所以我们每次记录下它的上一个节点是谁就行了。 但是我们因此就不能再使用队列了,我们开辟一个一维数组就行了,因为迷宫的大小是5*5的,所以我们直接开一个一维数组,然后模拟一下队列的进出就行了。 这个题比较坑的一点是它的输出圆括号里面,逗号后面有个空格,一定要输出,不然它会说,你的答案几乎正确,但是格式不对。...

XYQ BLOG 1668

什么是无人机电源管理模块?电源管理模块有什么用处?

我来描述一下我的问题情景,电源管理模块的定义是,这里给出这个PX4官方对于电源管理模块的一些介绍,补充一下锂电池的放电原理大家就可以更好理解为什么需要电源管理模块

HRWVY0725的博客 2272

POJ3984【迷宫问题】

所以,如果用此解法不一定能得到迷宫的最短路径,因为它会把所有可行路径(即能到达终点的)都遍历一遍。特别要注意的是,一定要做好标记,不然在某一点会陷进死循环,然后还要记得回溯,即递归后还原该点为可行点,不然你只能得到唯一一条路径,因为你把到达这条终点的路径封死了,其他路径哪还有机会到达终点。BFS:即广度优先搜索,它的特点是一层层遍历,很像数据结构的队列;一般用此法可以找到问题的最优解,但要注意的是,一定要做好标记,即遍历过的点不能重新入队列了,不然就是死循环。接下来我们讨论这两种解法的异同点。

Chao_King 714

TL431过压保护电路实战:5.5V阈值设计全流程(附MOSFET选型建议)

本文详细介绍了基于TL431和MOSFET构建5.5V阈值过压保护电路的完整设计流程。内容涵盖核心原理、阈值计算、驱动电路设计,并重点针对大电流应用场景,提供了MOSFET选型与散热处理的实战建议,帮助工程师打造可靠高效的电源保护方案。

weixin_28327051的博客 535

【k8s面试】超详细kubernetes面试题总结,面试必问!(附200道K8s Docker面试真题+答案详解

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_83620959的博客 1464

【编程题】迷宫问题

定义一个二维数组NM,如55数组如下所示: 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或者竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线,入口点为[0,0],既第一格是能走的路。输入描述:输出描述:示例: 我们可以使用回溯法的方式实现寻找最短路径。具体步骤为:首先将当前点加入路径,并设置为已走判断当前点是否为出口,是则输出路径,保存结果;跳转到4依次判断当前点的上、下、左、右四个点是否可走,如果可走则递归走该点当前点推出路径,设置为可走具体代码...

weixin_54792212的博客 1312

Python量化投资入门教程:从零构建你的第一个交易策略

量化投资教程以数学模型和计算机程序实现超额收益,选用Python工具链完成数据获取、策略构建及回测。通过移动平均线交叉策略示例,展示数据预处理、信号生成、收益计算及可视化全流程,结合收益率、最大回撤和夏普比率评估策略,并建议参数优化与策略融合提升稳健性。

ylmx5201314的博客 2454

python:用回溯法求解迷宫问题

今天刷华为机试题,刷到一道迷宫问题,看了其他人提交的代码发现有许多小bug不是很满意,我这里就用回溯法解决了这个迷宫问题,配上代码讲解 题目: 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, .........

ya_shy的博客 3090

避坑指南:Python模拟抖音扫码登录时,那些你可能会遇到的‘Referer’和‘Token’校验问题

本文深入解析Python模拟抖音扫码登录时常见的Referer校验与Token失效问题,提供五大陷阱的解决方案。从动态fp参数生成到Referer校验策略,再到Token生命周期管理,手把手教你破解抖音登录接口的反爬机制,助力开发者高效完成自动化登录。

weixin_42573113的博客 780

【并发编程五】c++进程通信——共享内存(shared memmory)

现代操作系统,对于内存管理,采⽤的是虚拟内存技术,也就是每个进程都有⾃⼰独⽴的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A中 和 进程 B中 的虚拟地址是⼀样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。这样这个进程写⼊的东⻄,另外⼀个进程⻢上就能看到了,都不需要拷⻉来拷⻉去,传来传去,⼤⼤提⾼了进程间通信的速度。⽤了共享内存通信⽅式,带来新的问题,那就是如果多个进程同时修改同⼀个共享内存,很有可能就冲突了。那共享内存的⽅式,就很好的解决了这⼀问题。

junxuezheng的博客 1万+

信息学奥赛一本通 1255:迷宫问题

【题目描述】定义一个二维数组:0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。【输入】一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。【输出】左上角到右下角的最短路径,格式如样例所示。【输入样例】0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0。

pystraf的博客 823

IEEE S&P 2026 大模型安全论文整理

本文梳理了 IEEE S&P 2026(第47届 IEEE 安全与隐私研讨会)中与 LLM Safety 相关的论文,涵盖大模型越狱攻击、防御与对齐、隐私保护、RAG 安全、多模态大模型安全、智能体安全、图-LLM 安全、工具链安全及生成式 AI 安全与隐私等方向。

CSPhD-winston的博客 1330

bfs解决poj3984迷宫问题

poj3984迷宫问题 题目链接 题目叙述 给定一大小为5*5的数组,数组元素由0,1组成,0表示可以通过,1表示为墙壁,不可通过,而且只能向上,向下,向左,向右行走,现要求从(0,0)位置到(4,4)位置的最短路径。 解题思路 首先,求最短路径问题,很明显可以用到宽度优先搜索bfs,从(0,0)点开始,走四面可以走的路,然后再从这些路,找继续可以往下走的路,直到最先找到了一条路径可以走到(4,4)点,这里需要用到队列queue去储存从所在点的位置走一步可以到达的点,(在走的时候,需要注意坐标x,y都要在

weixin_43966538的博客 523

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ3984迷宫问题

目录POJ3984迷宫问题题目描述思路分析代码 POJ3984迷宫问题 日常安利本题我的博客 题目描述 给出一个5×5的数字矩阵其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。 思路分析 事实证明,bfs对这种数字矩阵的处理能力明显不如dfs,bfs对距离矩阵的处理更强。 之前对图的处理多是那种邻接矩阵的处理,但是对这种数字矩阵的处理要...

Cai_Haiq的博客 875

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ-3984 迷宫问题

POJ-3984 迷宫问题 题目链接:POJ-3984 题目大意:求从图左上角到右下角的最短路径 解题思路:bfs 需要按顺序输出这是个要注意的点 我用的是结构体储存前面的节点 最后输出之前 将前面的节点一个个压入栈 然后弹出输出就好了 注意 往队列里添加数据的时候 记得把走过的点全部改为1 否则指针会乱掉 代码块: #include<iostream> #include<qu...

鱼头的水题之路 343

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

K - 迷宫问题 POJ - 3984

K - 迷宫问题 POJ - 3984 K: 普通的走迷宫问题。BFS都快写完了才发现它要求输出路径,考虑到只是个5*5迷宫且路径唯一,DFS可行。 首先这题和P1101 单词方阵这题很像,关键点在于要把记录路径的结构体数组也作为参数传入DFS函数中,从而达到“只保存最短路径”的目的。 然后也出了一点小差错,比如说因为它是5*5迷宫,不知怎么的就觉得走5步就可以了……可能是因为参考了上面这道单...

我于万物之中 245

迷宫问题 (POJ - 3984 ,BFS + 路径输出)

一.题目链接: POJ-3984 二.题目大意: 给出一个迷宫,输出路径. 三.分析: 初学 bfs 的小伙伴在入坑 bfs 后,终于学会了判断迷宫问题是否能够到达终点。 那么, 现在又迎来了一个新的问题 —— 若迷宫的解唯一, 那么怎样输出迷宫路径呢 ? 比如 poj 3984 迷宫问题 在 AC 之后, 写这篇博客不仅是为了供大家学习,斧正, 更是为了自身的总结, 吸取教训。 ...

The___Flash的博客 1923

poj 3984 迷宫问题

poj   3984   迷宫问题                  题目链接:http://poj.org/problem?id=3984                       题目分析:求最短路径用BFS,需要存路径,定义跟图一样大的节点数组,存下每个节点走到时它的上一个点,再把这条路顺着存一遍。 code: #include #include #include using

slicer的技术交流栈 1000

POJ3984迷宫问题(BFS+队列+栈)

POJ-3984-迷宫问题 http://poj.org/problem?id=3984 大概思路:进行普通的BFS,用队列来操作。在保存路径的时候,可以用栈来输出路径,利用先进后出的特性。

Seawindson的博客 1680

迷宫问题(POJ - 3984)

迷宫问题(POJ - 3984)Description 定义一个二维数组: Input 一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。 Output 左上角到右下角的最短路径,格式如样例所示。

BoBoo文睡不醒 690

POJ3984 迷宫问题 BFS

<br />Problem Address:http://poj.org/problem?id=3984<br /> <br />求迷宫的最短路径。<br /> <br />本来是打算试一下怎么求迷宫的,结果最后做出来了。<br /> <br />BFS搜索,同时记录到达每一步的最小步数。<br /> <br />输出路径时则向前递归。<br /> <br />一次RTE后改大数组,然后AC。然后就不改了,直接保存……<br /> <br />如此凌乱的代码啊……不堪入目啊……<br /> <br />也正

Human_CK的专栏 982

POJ 3984 迷宫问题【迷宫最短路径 bfs】

POJ 3984 【迷宫最短路径 bfs】 题目链接 http://poj.org/problem?id=3984 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int MAXL = 10; // 矩阵最大宽度 char maze[MAXL][MAXL]; // 迷宫 bool v

... 450
上一篇: POJ 3414 Pots
下一篇: HDU 1241 Oil Deposits
剑气扬名
博客等级 码龄7年 24粉丝 79原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值