题意,给出一个N,这是这个三空间的大小,然后给出所有面的状况O为空地,X为墙,再给出起始点的三维坐标和终点的坐标,输出到达的步数

比较坑 z是x,x是y,y是z,
Sample Input
START 1
O
0 0 0
0 0 0
END
START 3
XXX
XXX
XXX
OOO
OOO
OOO
XXX
XXX
XXX
0 0 1
2 2 1
END
START 5
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
0 0 0
4 4 4
END

Sample Output
1 0
3 4
NO ROUTE

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std; char map[][][];
int v[][][];
int n;
int sx,sy,sz;
int ex,ey,ez;
int dx[] = {,-,,,,};
int dy[] = {,,,-,,};
int dz[] = {,,,,,-};
int ans ; struct node
{
int x , y ,z ,step ;
}; int bfs()
{
node now , t ;
int fx , fy , fz ;
queue<node> q ;
now.x = sx ;
now.y = sy ;
now.z = sz ;
now.step = ;
memset(v,,sizeof(v)) ;
q.push(now) ;
v[sz][sx][sy] = ;
while(!q.empty())
{
now = q.front() ;
q.pop() ;
if (now.x == ex && now.y == ey && now.z == ez)
{
ans = now.step ;
return ;
}
for (int i = ; i < ; i++)
{
fx = now.x + dx[i] ;
fy = now.y + dy[i] ;
fz = now.z + dz[i] ;
if (fx< || fy< || fz< || fx>=n || fy>=n || fz>=n || v[fz][fx][fy] == || map[fz][fx][fy] == 'X')
continue ; t.x = fx ;
t.y = fy ;
t.z = fz ;
t.step = now.step + ;
v[fz][fx][fy] = ;
q.push(t) ;
}
} return ;
} int main ()
{
//freopen("in.txt","r",stdin) ;
char s[] ;
while (scanf("%s %d" , s , &n) !=EOF)
{
int i , j , k ;
for (i = ; i < n ; i ++)
for (j = ; j < n ; j ++)
{
scanf("%s" , map[i][j]) ;
}
scanf("%d %d %d" , &sx,&sy,&sz) ;
scanf("%d %d %d" , &ex,&ey,&ez) ;
scanf("%s" , s) ; ans = ;
if (bfs())
printf("%d %d\n" , n , ans) ;
else
printf("NO ROUTE\n") ;
} return ;
}

最新文章

  1. SpringMVC 处理异常的4种方式
  2. uva 10801(最短路)
  3. SAP 录屏BDC使用—实例
  4. 屠龙之路_任生活如何虐你,屠龙之路还得继续_SeventhDay
  5. html和xhtml和html5一些区别和笔记
  6. SpringJDBC解析2-execute方法
  7. 内核打上yaffs2补丁遇到的问题
  8. 对jquery的 attr()和prop()理解
  9. vb.net写的odbc连接dsn数据源和ole链接oracle的小例子
  10. List&lt;object&gt;排序 z
  11. 我摘录的js代码
  12. node.js下mongoose简单操作实例
  13. 【Netty源码解析】NioEventLoop
  14. 你不可不知的Java引用类型之——虚引用
  15. mysql案例~非常规操作汇总
  16. python 基础 three day
  17. 基于ArduinoLeonardo板子的BadUSB攻击实战
  18. Android-available for offline mode
  19. QMDP-Net: Deep Learning for Planning under Partial Observability
  20. yii---获取当前sql语句

热门文章

  1. Hive记录-Hive介绍(转载)
  2. vuex2.0源码分析
  3. CircleList-使用UGUI实现的圆形列表
  4. 996ICU与程序猿的个人成长
  5. Python生成唯一id的方法
  6. Thrift 安装及使用
  7. 支付宝app支付流程
  8. JS——页面倒计时跳转
  9. Ribbon实现Office开始菜单
  10. Java SE 之 数据库操作工具类(DBUtil)设计