题意是有个三维的地图,从起点到终点的最短路径。用bfs做,不过这个题坑的地方在于,开三维数组你要搞清楚纬度的关系。a[i][j][h] i是层,j是行,h是列。然后坐标呢,又是列,行,层,所以如果要用sx,sy,sz,读取的时候要用 sz,sy,sx,的顺序读取。然后才能啊a[sx][sy][sz]这么用。。。这个搞了好久才搞清楚。。。好笨啊。不这么来也行,只要搞清楚行列层关系就好。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <map>
#include <string>
#include <string.h>
#include <queue>
#include <vector>
#include <set>
#include <cmath>
#define inf 0x7fffffff
using namespace std;
char s[],w[][][],flag[][][],m[][][],e[];
int n,sx,sy,sz,gx,gy,gz;
int dir[][]={{,,},{-,,},{,,},{,-,},{,,},{,,-}};
struct p{
int x,y,z;
};
int bfs(){
queue<p> q;
p a;
a.x=sx,a.y=sy,a.z=sz;
flag[sx][sy][sz]=;
q.push(a);
while(q.size())
{
p b;
b=q.front();
q.pop();
if(b.x==gx&&b.y==gy&&b.z==gz) return ;
for(int i=;i<;i++)
{
int nx=b.x+dir[i][],ny=b.y+dir[i][],nz=b.z+dir[i][];
if(w[nx][ny][nz]=='O'&&!flag[nx][ny][nz]&&nx>&&nx<=n&&ny>&&ny<=n&&nz>&&nz<=n)
{
flag[nx][ny][nz]=;
p c;
c.x=nx,c.y=ny,c.z=nz;
q.push(c);
m[nx][ny][nz]=m[b.x][b.y][b.z]+;
}
}
}
return ;
}
int main()
{
while(scanf("%s%d",s,&n)!=EOF)
{
memset(flag,,sizeof(flag));
memset(m,,sizeof(m));
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
for(int h=;h<=n;h++)
{
scanf(" %c",&w[i][j][h]);
}
}
}
scanf("%d%d%d%d%d%d",&sz,&sy,&sx,&gy,&gz,&gx);
sx+=,sy+=,sz+=,gx+=,gy+=,gz+=;
scanf("%s",e);
if(bfs())
printf("%d %d\n",n,m[gx][gy][gz]);
else printf("NO ROUTE\n");
}
return ;
}

最新文章

  1. virtualBox上虚拟机和主机互联{}
  2. android sdk 安装排错
  3. HDU 5491 The Next(位运算)
  4. Akka(21): Stream:实时操控:人为中断-KillSwitch
  5. 读书笔记-你不知道的JS上-词法作用域
  6. OpenCV meanshift 图像分割代码
  7. javascript 调试 &amp; console.table()
  8. log4j警告:WARN Please initialize the log4j system properly 的解决方法
  9. scrapy爬虫学习系列二:scrapy简单爬虫样例学习
  10. DevExpress Grid使用checkBox选中的方法
  11. 我面试过没有上万人也有十几个,简历要这么写才有hr要你
  12. Django 2.0 URL新版配置介绍
  13. 一个模拟——抢票部分功能的 简单版(主要实例化一下 Lock 的使用)
  14. iOS 在 程序内调用手机上安装的地图软件进行导航
  15. Linux:使用rpcgen实现64位程序调用32位库函数
  16. Spring 测试
  17. 51nod 1239 欧拉筛模板
  18. CF 55 D. Beautiful numbers
  19. An existing resource has been found at location D:\Tomcat 7\apache-tomcat-7.0.55\webapps。。。
  20. 常量池之字符串常量池String.intern()

热门文章

  1. 一步一步教你简单完成 Android USB开发
  2. POJ 2096 Collecting Bugs:期望dp
  3. 前端多媒体(2)—— xhr异步接收处理二进制数据
  4. wordpress汇总(持续更新)
  5. bzoj3312
  6. mysql基础itcast笔记
  7. Autofac依赖注入框架使用
  8. linux工具————fish shell
  9. HDU - 6082 度度熊与邪恶大魔王(背包变式)
  10. 如何让div中的span垂直居中 ----height:100%设置div的高度