hdu-1240
来源:互联网 发布:mac怎么用latex 编辑:程序博客网 时间:2024/06/14 19:53
三维的BFS
#include <iostream>#include <algorithm>#include <set>#include <map>#include <string.h>#include <queue>#include <sstream>#include <stdio.h>#include <math.h>#include <stdlib.h>using namespace std;char str[10];int n;int sx,sy,sz;int ex,ey,ez;int ans ;int vis[33][33][33];char p[33][33][33];int dir[6][3] = {{0,0,1},{0,0,-1},{1,0,0},{-1,0,0},{0,-1,0},{0,1,0}};struct node {int x,y,z;int step;};int bfs (){memset(vis,0,sizeof(vis));node qq,qqq;qq.x = sx;qq.y = sy;qq.z = sz;qq.step = 0;vis[qq.x][qq.y][qq.z] = 1;queue<node> q;q.push(qq);while (!q.empty()){qqq = q.front();q.pop();if (qqq.x == ex && qqq.y == ey && qqq.z == ez){ans = qqq.step;return 1;}for(int i=0;i<6;i++){qq.x = qqq.x + dir[i][0];qq.y = qqq.y + dir[i][1];qq.z = qqq.z + dir[i][2];qq.step = qqq.step;if (qq.x < 0 || qq.x >=n || qq.y < 0 || qq.y >=n || qq.z < 0 || qq.z >=n )continue;if(vis[qq.x][qq.y][qq.z] || p[qq.x][qq.y][qq.z]=='X') continue;vis[qq.x][qq.y][qq.z] = 1;qq.step = qqq.step + 1;q.push(qq);}}return 0;}int main(){while (scanf ("%s%d",str,&n)!=EOF){for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf("%s",p[i][j]);}}scanf("%d %d %d",&sx,&sy,&sz);scanf("%d %d %d",&ex,&ey,&ez);scanf("%s",str);p[ex][ey][ez] = 0;if (bfs()){printf("%d %d\n",n,ans);}else printf("NO ROUTE\n");}return 0;}
0 0
- hdu-1240
- hdu 1240 Asteroids!
- HDU-1240-Asteroids!
- hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- 搜索hdu 1240
- HDU 1240 三维bfs
- Hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- HDU 1240 Asteroids!
- hdu 1240 三维BFS
- hdu 1240 Asteroids BFS
- HDU 1240 Asteroids!
- hdu 1240 Asteroids!
- hdu-1240-Asteroids!
- HDU 1240 BFS
- hdu 1240 BFS
- jquery获取所有选中的checkbox
- nyoj.255 C小加 之 随机数【水题】 20141125
- android 通过wifi 获取经纬度和获取渠道号/屏幕宽高
- Hello object-c!!
- redis java客户端Jedis 连接池实现
- hdu-1240
- Makefile 基础使用总结
- 第十三周项目六:体验文件操作5.0
- 医疗行业应急远程音视频系统开发
- uboot的relocation原理详细分析
- Go struct
- 说说我对OpenGL坐标变换几个关键点的理解
- 设计模式——享元模式
- apache的作用和tomcat的区别