3Ddungeon-------三维搜索-----偷个懒 把 亡命逃窜 的代码修改了一下 拿来用了
题 很简单 就是给一个 三维的迷宫然后 开你起始地点 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-------三维搜索-----偷个懒 把 亡命逃窜 的代码修改了一下 拿来用了的更多相关文章
- 织梦dedecms后台文章搜索关键字,关键字包含文章内容的代码修改
1.织梦dedecms后台文章搜索功能在哪里找?织梦dedecms后台-->核心-->常用操作-->所有档案列表(或)织梦dedecms后台-->核心-->内容管理--& ...
- 懒人的小技巧, 批处理修改IP
相信很多人都有这样的麻烦, 工作单位的IP网段与住的不一致, 自己的笔记本在单位和回家的时候每次都要更改IP, 很麻烦, 偷个懒, 做了个批处理来修改IP,方便一点. 还有就是可以把工作的时候才需要 ...
- nyoj 523 亡命逃窜 【BFS】
亡命逃窜 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 从前有个叫hck的骑士,为了救我们漂亮的公主,潜入魔王的老巢,够英雄吧.只是英雄不是这么好当的.这个可怜的娃 ...
- POJ 1220 大数字的进制转换,偷下懒,用java
题意为进制转换,Java的大数类就像是作弊 import java.math.BigInteger; import java.util.Scanner; public class Main { pub ...
- 对《禁忌搜索(Tabu Search)算法及python实现》的修改
这个算法是在听北大人工智能mooc的时候,老师讲的一种局部搜索算法,可是举得例子不太明白.搜索网页后,发现<禁忌搜索(Tabu Search)算法及python实现>(https://bl ...
- 代码 | 自适应大邻域搜索系列之(5) - ALNS_Iteration_Status和ALNS_Parameters的代码解析
前言 上一篇推文说了,后面的代码难度直线下降,各位小伙伴可以放去n的100次方心了.今天讲讲一些细枝末节,就是前面一直有提到的参数和一些状态的记录代码.这个简单啦,小编也不作过多解释了.大家直接看代码 ...
- 代码 | 自适应大邻域搜索系列之(3) - Destroy和Repair方法代码实现解析
前言 上一篇文章中我们具体解剖了ALNS类的具体代码实现过程,不过也留下了很多大坑.接下来的文章基本都是"填坑"了,把各个模块一一展现解析给大家.不过碍于文章篇幅等原因呢,也不会每 ...
- 懒下载软件,一行代码连接wifi^_^
按键盘的windows+R,输入cmd,回车键 设置语句netsh wlan set hostednetwork mode=allow ssid=user key=possword 按回车键 启动语句 ...
- Eclipse中输入变量会自动补全上屏的解决方法
我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分 ...
随机推荐
- 发布自己的nuget包
1.先到www.nuget.org注册账户,然后在用户中心获取apikey 2.到https://dist.nuget.org/index.html下载最新的nuget.exe,放到你的项目根目录下 ...
- C#当中的out关键字(借鉴于CSDN)
一丶与ref关键字一样,out关键字也是按引用来传递的.out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数 ...
- 【MFC Programming】 Using Dialog To Set A Correlate Menu
This blog will show how to display a menu we designed in a dialog. 1.Insert a new dialog& a new ...
- padding填充与box-sizing: border-box配合使用
不管伸缩盒还是浮动盒子,只要使用到padding,就必须使用 box-sizing: border-box; 有图片的时候,需摇与其他文字对齐的时候,在图片的外层加个:vertical-ali ...
- bupt summer training for 16 #8 ——字符串处理
https://vjudge.net/contest/175596#overview A.设第i次出现的位置左右端点分别为Li,Ri 初始化L0 = 0,则有ans = sum{ (L[i] - L[ ...
- bupt summer training for 16 #6 ——图论
https://vjudge.net/contest/174020 A.100条双向边,每个点最少连2个边 所以最多100个点,点的标号需要离散化 然后要求恰好经过n条路径 快速幂,乘法过程就是flo ...
- [Usaco2014 Mar]Sabotage
[Usaco2014 Mar]Sabotage 题目 Farmer John"s arch-nemesis, Farmer Paul, has decided to sabotage Far ...
- 洛谷 P2486 BZOJ 2243 [SDOI2011]染色
题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221” ...
- CTF密码学总结
CTF中那些脑洞大开的编码和加密 摘自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...
- hdu_1012_u Calculate e_201310121519
u Calculate eTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...