【HDU】1253. 胜利大逃亡

[BFS] hdu 1253 胜利大逃亡 /** [BFS]hdu 1253 胜利大逃亡 bfs一水,一直WA,因为已经处于起点,然后mat[0][0][0] == 1也是可行的 */ #include #include #include using namespace std; const int N = 55; int mat[N][N][N],a,b,c,T; struct node { int x,y,z,step; 阅读详情

HDU1253:胜利大逃亡

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 48356    Accepted Submission(s): 16559

Problem Description

Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.

魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出口就算离开城堡,如果走到出口的时候魔王刚好回来也算逃亡成功),如果可以请输出需要多少分钟才能离开,如果不能则输出-1.

Input

输入数据的第一行是一个正整数K,表明测试数据的数量.每组测试数据的第一行是四个正整数A,B,C和T(1<=A,B,C<=50,1<=T<=1000),它们分别代表城堡的大小和魔王回来的时间.然后是A块输入数据(先是第0块,然后是第1块,第2块......),每块输入数据有B行,每行有C个正整数,代表迷宫的布局,其中0代表路,1代表墙.(如果对输入描述不清楚,可以参考Sample Input中的迷宫描述,它表示的就是上图中的迷宫)

特别注意:本题的测试数据非常大,请使用scanf输入,我不能保证使用cin能不超时.在本OJ上请使用Visual C++提交.

Output

对于每组测试数据,如果Ignatius能够在魔王回来前离开城堡,那么请输出他最少需要多少分钟,否则输出-1.

Sample Input

1 3 3 4 20 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0

Sample Output

11

思路:BFS

//胜利大逃亡
//BFS(广度优先搜索) 
#include<iostream>
#include<queue>
using namespace std;
bool mark[50][50][50];//标记是否被搜索过 
int maze[50][50][50];//记录墙的信息
struct N{
	int x,y,z;
	int t;
};
int dir[6][3] = {
                    {-1, 0, 0},
                    {1, 0, 0},
                    {0, -1, 0},
                    {0, 1, 0},
                    {0, 0, -1},
                    {0, 0, 1}
};//6个搜索方向
queue<N> Q;
int BFS(int a,int b,int c){
	while(Q.empty()==false){
		N now = Q.front();
		Q.pop();
		for(int i = 0;i<6;i++){	//搜索树的下一层 
			int nx = now.x+dir[i][0];
			int ny = now.y+dir[i][1];
			int nz = now.z+dir[i][2];//计算新坐标 
			if(mark[nx][ny][nz] == true ) continue;//搜索过,不再搜索
			if(maze[nx][ny][nz] == 1) continue;//是墙
			if(nx<0||nx>=a||ny<0||ny>=b||nz<0||nz>=c) continue;//超出范围,不再搜索
			N next;
			next.x=nx;
			next.y=ny;
			next.z=nz;//细心!!!!!!!!! 
			next.t=now.t+1;//新状态在之前的基础上+1 
			Q.push(next);
			mark[nx][ny][nz]=true;
			if(nx==(a-1) && ny==(b-1) && nz==(c-1)) return next.t;//找到了,直接返回 
		}
	}
	return -1; 
} 
int main(void){
	int count;
	scanf("%d",&count);
	while(count--){
		int a,b,c,t;
		scanf("%d%d%d%d",&a,&b,&c,&t);
		for(int i=0;i<a;i++){
			for(int j=0;j<b;j++){
				for(int k=0;k<c;k++){
					scanf("%d",&maze[i][j][k]);
					mark[i][j][k] = false;//初始化搜索标记数组(没有搜索) 
				}
			}
		}
		while(Q.empty()==false) {
			Q.pop();
		}//清空队列 
		//初始化起点
		mark[0][0][0]=true;
		N tmp;
		tmp.x = tmp.y = tmp.z = tmp.t = 0;
		Q.push(tmp);
		int rec = BFS(a,b,c); 
		if(rec<=t) printf("%d\n",rec);
		else printf("-1\n");
	}
	return 0;
}
 
 	
 	

 

电镀技术:微型制造的原子级加法工艺与核心优势 电镀是一种利用电解原理在基材表面沉积金属层的表面处理技术,其本质是通过电场控制溶液中金属离子的迁移与还原,实现原子级的可控沉积。这一过程的核心在于对电流密度、温度、添加剂等参数的精密调控,从而实现对镀层结晶结构、性能的“编程”。从技术价值看,电镀作为一种“加法制造”工艺,在微观尺度上具有无与伦比的保形性和材料灵活性,能够实现复杂三维结构的均匀覆盖与功能复合。在应用场景上,它尤其契合现代微型化制造的需求,例如在集成电路的铜互连填充、高密度PCB板微孔金属化、MEMS传感器电极制备以及柔性电子器件制造中发挥着不 阅读详情

相关推荐

ST电机库实战:从状态机到稳健启动流程的深度解析

本文深度解析了ST电机库中状态机的核心作用与稳健启动流程。状态机作为电机控制的“交通指挥官”,通过IDLE、CHARGE_BOOT_CAP、ALIGNMENT等一系列状态的严格跳转,确保了永磁同步电机(PMSM)和直流无刷电机(BLDC)的安全启动与可靠运行,是避免硬件损坏和实现平稳控制的关键。

weixin_29161785的博客 227

HDU-1253 胜利大逃亡

HDU-1253 胜利大逃亡 原题连接:HDU-1253 题目大意:三维迷宫,一开始在(0,0,0),需要走到(a-1,b-1,c-1),有六个方向可以走(上下左右前后),但迷宫中只有路可以走,墙不能走。每走一步需要1单位时间,一共t单位时间,问能否在时间用完前走到终点。 bfs AC代码: #include <iostream> #include <cstring> #include <queue> #include <cstdio> using names

cuc_pyx技术小站 543

【小白教程】本地部署VLM-R1模型(使用Docker)

通过Docker本地部署VLM-R1大模型,详细教程。

m0_69855053的博客 2943

HDOJ 1253 HDU 1253 胜利大逃亡 ACM 1253 IN HDU

MiYu原创, 转帖请注明 : 转载自______________白白の屋题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1253题目描述:胜利大逃亡Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total...

weixin_30357231的博客 494

Jetson Orin Nano@Ubuntu22.04:IMX219 CSI摄像头配置全流程与避坑指南

本文详细介绍了在Jetson Orin Nano@Ubuntu22.04系统上配置IMX219 CSI摄像头的全流程,包括硬件安装、驱动配置、常见问题排查及性能优化。特别强调了排线方向、驱动模式选择等关键细节,并提供了实用的命令和解决方案,帮助开发者高效完成摄像头部署与调试。

prometheus9mon的博客 321

从理论到实践:Zemax驱动下的离轴三反光学系统全流程构建

本文详细阐述了从理论推导到软件实现的离轴三反光学系统全流程设计方法。文章首先分析了离轴三反系统在空间遥感等领域的优势,然后手把手指导如何基于像差理论计算共轴三反的初始结构参数,包括曲率半径与圆锥系数。最后,重点介绍了在Zemax中完成从共轴建模、视场离轴设置到优化与性能评估的完整实战步骤,为光学工程师提供了宝贵的经验与避坑指南。

weixin_29205061的博客 239

HDU-1253-胜利大逃亡

HDU-1253-胜利大逃亡 http://acm.hdu.edu.cn/showproblem.php?pid=1253 简单的三维BFS #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cstdlib&gt; #include&lt;queue&gt; #inclu...

java开发指南博客 【转载】 249

RK3568笔记二:部署手写数字识别模型

部署手写数字识别模型,使用手写数字识别(mnist)数据集训练了一个 LENET 的五层经典网络模型。Lenet是我们的深度学习入门的必学模型,是深度学习领域中的经典卷积神经网络(CNN)架构之一。过程分为:训练,导出ONNX,转化RKNN,测试。

1170

HDU 1253 胜利大逃亡

HDU ACM BFS 搜素

上千主上-贝库塔 1043

建设银行核心系统建设历程全网最详细记录

中国建设银行核心系统数字化转型之路 摘要:中国建设银行自1954年成立以来,其核心系统经历了从分散到集中、再到分布式架构的演进历程。2002-2005年完成的数据大集中工程(DCC)实现了全行业务统一管理,2010年启动的"新一代核心系统"构建了企业级架构,率先实现"一次研发,全行共享"。2020年起全面推进主机下移战略,通过分布式架构改造,攻克八大关键技术难题,于2024年7月完成境内外全量核心业务下移,日均同步数据8亿条,实现金融核心系统完全自主可控。这一转型不仅

银行信息系统应用架构详解 4873

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 895

HDU 1253 胜利大逃亡(BFS)

BFS在三维空间的简单应用。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253通过这道题目深刻领会了深搜和广搜应用场合的区别(大神请直接无视),对于迷宫问题在求最短的路径的时候最好采用广搜,节省了时间。而如果求是否能够走出迷宫,则可以用深搜,深搜比广搜节省了空间,但是时间复杂度较高。AC代码:#include <cstdio> #include <

wyk19950704的博客 369

【Bug已解决】codex file edit fails / Write operation denied — CodeX CLI 文件编辑失败解决方案

CodeX CLI 编辑文件时报写入被拒绝,本质是沙箱限制或权限不足。文中给出配置允许目录、修复权限、Git stash 管理冲突等完整方案。

一键难忘的博客 4301

[HDU 1253] 胜利大逃亡

[HDU 1253] 胜利大逃亡 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 1 #include&lt;iostream&gt; 2 #include&lt;cstdio&gt; 3 #include&lt;cstring&gt; 4 #include&lt;queu...

Youpeng 217

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

HDU1253 胜利大逃亡【BFS】

传送门:HDU1253 胜利大逃亡 文章目录题目描述测试样例解题思路AC代码 题目描述 测试样例 输入样例: 1 3 3 4 20 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 输出样例: 11 解题思路   bfs AC代码 #include<cstdio> #include<algorithm> #include<queue> #include<vector&

Lucas9的博客 263

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

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

【HDU 1253 --- 胜利大逃亡】bfs

【HDU 1253 --- 胜利大逃亡】bfs 题目来源:点击进入【HDU 1253 — 胜利大逃亡】 Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请

来日浅谈的博客 544

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

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

【BFS模板】HDU1253 胜利大逃亡

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23640    Accepted Submission(s): 9081 Problem Description Ignatius被魔王抓走了,有一天魔王出差去

F丶轩 688

hdu 1253 胜利大逃亡(bfs)

hdu 1253 胜利大逃亡 ProblemDescription Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ign...

diansitao5461的博客 183

hdu1253 --胜利大逃亡(BFS)

hdu1253 --胜利大逃亡(BFS) Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出口就算离开城堡,如果走到出

weixin_45808576的博客 331

HDU1253 胜利大逃亡 BFS

HDU1253 胜利大逃亡题意: 在一个三维的房间里找到距离出口的最短路径,比较最短路径花的时间和魔王回来的时间 T,若小于等于T,则出逃成功。起点坐标为(0,0,0),终点坐标为(a-1, b-1, c-1),地图中0为通路,1为墙。 思路: 典型的BFS,记录的数组从常见的二维扩充到了三维。依然使用队列维护,把初始状态加入队列,修改dis[][][]数组的值,取出队首元素,让元

u013330981的专栏 414

hdu-1253 胜利大逃亡(BFS)

hdu-1253 胜利大逃亡(BFS)题目描述 胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 34840    Accepted Submission(s): 12482 Problem Descript

oYinGui1 626

hdu1253胜利大逃亡bfs

http://acm.hdu.edu.cn/showproblem.php?pid=1253#include<iostream> #include<queue> #include<cstdio> using namespace std; const int INF=10000;//时间初始值为无穷大; const int MAX=70; int A,B,C,T; struct node//表示达到某

skymeteorite 378

HDU1253 胜利大逃亡

这个问题一看,可以说和UVA532 Dungeon Master完全相同,豪情万丈地做了拷贝来程序修改,一提交结果是“Time Limit Exceeded”,满脸困惑。多方调查研究后,终于懂得了程序简洁才是硬道理。也许因为测试数据量大,各个方面改进速度的措施都用了之后,总算是AC了。胜利大逃亡,逃出来了! 问题链接:HDU1253 胜利大逃亡。 问题简述:...

weixin_34204057的博客 113

hdu 1253 胜利大逃亡

http://acm.hdu.edu.cn/showproblem.php?pid=1253 胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21190Accepted Submission(s): 8378 Pr...

weixin_30920853的博客 75

HDU-1253 胜利大逃亡 (BFS)

好吧,上次刚傻完这次又傻了一次,先粘题目吧。     题目:HDU-1253 胜利大逃亡     题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253     题目: 胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/

桐小目的秘密基地 743
上一篇: 【机试】10进制 VS 2进制
下一篇: 【机试】Problem E(栈的应用)
coderwait
博客等级 码龄9年 20粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值