题 很简单  就是给一个   三维的迷宫然后 开你起始地点 S 问你能不能到达 出口 E 能的话 需要多长时间 ?

 #include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
int a,b,c,visited[][][],mark;
char a1[][][];
int b1[][]={,,,-,,,,,,,,-,,,,,-,};
struct node
{
int x,y,z,step;
};
queue<node>Q;
void BFS(int x,int y,int z)
{
node q={x,y,z,};
visited[x][y][z]=;
Q.push(q);
while(!Q.empty())
{
node e=Q.front();
Q.pop();
for(int i=;i<;i++)
{
if(mark)
return ;
q.x=e.x+b1[i][],q.y=e.y+b1[i][],q.z=e.z+b1[i][];
if(q.x>=&&q.x<a&&q.y>=&&q.y<b&&q.z>=&&q.z<c&&!visited[q.x][q.y][q.z]&&a1[q.x][q.y][q.z]!='#') // 没有 超出 范围 并且 没有访问 且 不是墙
{
visited[q.x][q.y][q.z]=;
q.step=e.step+;
Q.push(q);
if(a1[q.x][q.y][q.z]=='E')
{
mark=q.step;
}
}
}
}
}
int main()
{
int t,sx,sy,sz;
while(scanf("%d%d%d",&a,&b,&c),(a||b||c))
{
for(int i=;i<a;i++)
for(int j=;j<b;j++)
for(int q=;q<c;q++)
{
scanf(" %c",&a1[i][j][q]);
if(a1[i][j][q]=='S')
{
sz=i;
sx=j;
sy=q;
}
}
memset(visited,,sizeof(visited));
mark=;
while(!Q.empty())
Q.pop();
BFS(sx,sy,sz);
if(mark)
printf("Escaped in %d minute(s).\n",mark);
else
printf("Trapped!\n");
}
return ;
}

3Ddungeon-------三维搜索-----偷个懒 把 亡命逃窜 的代码修改了一下 拿来用了的更多相关文章

  1. 织梦dedecms后台文章搜索关键字,关键字包含文章内容的代码修改

    1.织梦dedecms后台文章搜索功能在哪里找?织梦dedecms后台-->核心-->常用操作-->所有档案列表(或)织梦dedecms后台-->核心-->内容管理--& ...

  2. 懒人的小技巧, 批处理修改IP

    相信很多人都有这样的麻烦, 工作单位的IP网段与住的不一致, 自己的笔记本在单位和回家的时候每次都要更改IP, 很麻烦,  偷个懒, 做了个批处理来修改IP,方便一点. 还有就是可以把工作的时候才需要 ...

  3. nyoj 523 亡命逃窜 【BFS】

    亡命逃窜 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 从前有个叫hck的骑士,为了救我们漂亮的公主,潜入魔王的老巢,够英雄吧.只是英雄不是这么好当的.这个可怜的娃 ...

  4. POJ 1220 大数字的进制转换,偷下懒,用java

    题意为进制转换,Java的大数类就像是作弊 import java.math.BigInteger; import java.util.Scanner; public class Main { pub ...

  5. 对《禁忌搜索(Tabu Search)算法及python实现》的修改

    这个算法是在听北大人工智能mooc的时候,老师讲的一种局部搜索算法,可是举得例子不太明白.搜索网页后,发现<禁忌搜索(Tabu Search)算法及python实现>(https://bl ...

  6. 代码 | 自适应大邻域搜索系列之(5) - ALNS_Iteration_Status和ALNS_Parameters的代码解析

    前言 上一篇推文说了,后面的代码难度直线下降,各位小伙伴可以放去n的100次方心了.今天讲讲一些细枝末节,就是前面一直有提到的参数和一些状态的记录代码.这个简单啦,小编也不作过多解释了.大家直接看代码 ...

  7. 代码 | 自适应大邻域搜索系列之(3) - Destroy和Repair方法代码实现解析

    前言 上一篇文章中我们具体解剖了ALNS类的具体代码实现过程,不过也留下了很多大坑.接下来的文章基本都是"填坑"了,把各个模块一一展现解析给大家.不过碍于文章篇幅等原因呢,也不会每 ...

  8. 懒下载软件,一行代码连接wifi^_^

    按键盘的windows+R,输入cmd,回车键 设置语句netsh wlan set hostednetwork mode=allow ssid=user key=possword 按回车键 启动语句 ...

  9. Eclipse中输入变量会自动补全上屏的解决方法

    我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分 ...

随机推荐

  1. PHP 之微信JSSDK类封装

    <?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appS ...

  2. CAD设置图层亮度(com接口)

    主要用到函数说明: MxDrawXCustomFunction::Mx_SetLayerBright 设置显示亮度,默认值为100%.详细说明如下: 参数 说明 LPCTSTR pszLayerNam ...

  3. jdk编译安装及tomcat编译安装

    这里我安装的jdk版本为1.8版本,tomcat版本为8.5(请上官网下载) 运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) jdk部署: 1.前往软件所在路径 [root@web ...

  4. R 安装car包失败

    在RStudio里安装car包的时候报错 /usr/bin/ld: cannot find -llapack /usr/bin/ld: cannot find -lblas make: *** [qu ...

  5. 8.1.1 Connection 对象

    Connect是sqllite3模块中最基本的也是最重要的一个类,其主要方法如下表所示: 方法 说明 execute(sql[,parameters]) 执行一条SQL语句 executemany(s ...

  6. [网络收集]20190528华为数通网络工程师认证HCIA-VRP的操作指导思维导图

    >> >0 VRP基础 >1 命令行基础 >2 文件系统基础 >3 VRP系统管理

  7. 【codeforces 508B】Anton and currency you all know

    [题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...

  8. 【ACM】hdu_1276_士兵队列训练问题_201308131032

    士兵队列训练问题Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. Spring MVC-集成(Integration)-Hibernate验证器示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_hibernate_validator.htm 说明:示例基于Spring MVC ...

  10. Hadoop1.0之集群搭建

    VirtualBox虚拟机 下载地址 下载择操作系统对应的基础安装包 下载扩展包(不区分操作系统) http://www.oracle.com/technetwork/cn/server-storag ...