题目链接:2251 -- Dungeon Master
知道你看不懂题(手动滑稽):友情链接。
题意:找到从S到E的最少步数的路径,输出该步数,不过有意思的是这个类似迷宫问题不是二维的,是一个三维迷宫,其实三维迷宫和二维没多大差别,只是时间复杂度更多一点,搜索的方向更多一点,初次接触可能会被难住。
代码:
#include
#include
#include
#include
using namespace std;
struct node//定义三维坐标结构体
{
int z;
int x;
int y;
};
int dx[6]={0,-1,0,1,0,0},dy[6]={-1,0,1,0,0,0},dz[6]={0,0,0,0,-1,1};//六个方向的搜索
bool vis[31][31][31];//vis数组记录是否走过,剪枝去重。
char mp[31][31][31];
int d[31][31][31];//记录步数的三位数组。
int l,r,c,gx,gy,gz,sx,sy,sz;//g则是开始的坐标,S则是终止的坐标。
int bfs()
{
queueq;
q.push({gz,gx,gy});
vis[gz][gx][gy]=1;
d[gz][gx][gy]=0;
while(q.size())
{
node p=q.front();
q.pop();
if(p.x==sx&&p.y==sy&&p.z==sz)
break;
for(int i=0;i=0&&nx=0&&nz=0&&ny>l>>r>>c)
{
memset(d,0,sizeof d);//初始化
memset(vis,0,sizeof vis);//初始化
if(l==0&&r==0&&c==0)
break;
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录