题目大意:先输入START N 表示这个立方体的层数是N,每一层为一个NxN的正方形。。其实就是一个NxNxN的正方体,输入时一层一层的输入。
输入完立方体后,输入起点和终点的坐标。
输出是 先输出 N 再输出最短路径的步数。如果走不到终点,输出NO ROUTE。
坑点:它输入的起点和终点坐标不与我们输入的立方体对应。要把输出的起点终点描述看仔细了 不能想当然
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <string>
#define M 11
using namespace std;
struct node{
int x,y,z;
int t;
};
int dir[6][3]={
{0,0,1},{0,1,0},{1,0,0},{0,0,-1},{0,-1,0},{-1,0,0}};
int N;
int sa,sb,sc,ea,eb,ec;
char maze[M][M][M];
bool judge(int x,int y,int z){
if(x<0||x>=N||y<0||y>=N||z<0||z>=N){
return true;
}
if(maze[x][y][z]=='X') {
return true;
}
return 0;
}
int bfs(){
queue<node> myque;
node now,next;
now.x=sa;
now.y=sb;