zoj1940
链接:点击打开链接
题意:三维搜索‘S’为起点,‘E’为终点,求走出的最短时间
代码:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <queue>
using namespace std;
int xx[]={1,-1,0,0,0,0}; //方向向量
int yy[]={0,0,1,-1,0,0};
int zz[]={0,0,0,0,1,-1};
int p,q,r;
char str[35][35][35];
struct node{
int x,y,z,sum;
};
int bfs(node st,node en){
int i;
queue<node>qu;
node cur,temp;
qu.push(st);
while(qu.size()){
cur=qu.front();qu.pop();
if(cur.x==en.x&&cur.y==en.y&&cur.z==en.z)
return cur.sum; //找到之后直接返回走的步数
for(i=0;i<6;i++){
temp.x=cur.x+xx[i];
temp.y=cur.y+yy[i];
temp.z=cur.z+zz[i];
temp.sum=cur.sum+1;
if(temp.x>=0&&temp.x<p&&temp.y>=0&&temp.y<q&&temp.z>=0&&temp.z<r)
if(str[temp.x][temp.y][temp.z]!='#'){
qu.push(temp);
str[temp.x][temp.y][temp.z]='#'; //走过之后就变成'#',省掉一个数组记录
} //是否走过
}
}
return -1;
}
int main(){
int i,j,k,sumsum;
node st,en;
while(scanf("%d%d%d",&p,&q,&r)!=EOF&&(p||q||r)){
for(i=0;i<p;i++)
for(j=0;j<q;j++)
for(k=0;k<r;k++){
cin>>str[i][j][k];
if(str[i][j][k]=='S')
st.x=i,st.y=j,st.z=k,st.sum=0;
else if(str[i][j][k]=='E')
en.x=i,en.y=j,en.z=k;
}
sumsum=bfs(st,en);
if(sumsum==-1)
printf("Trapped!\n");
else
printf("Escaped in %d minute(s).\n",sumsum);
}
return 0;
}
zoj1940的更多相关文章
- zoj1940(三维广搜)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=940 分析:三维其实就是六个方向地搜索,思维清晰且细心点,很快就AC了 ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
随机推荐
- SQL Server语言 函数以及SQL编程
1.数学函数:操作一个数据,返回一个结果 --去上限: ceiling ☆select ceiling(price) from car --去下限:floor ☆select floor(price) ...
- cocos2dx实现单机版三国杀(一)
首先需要一个UI交互类 GameUI -layer 一个游戏驱动类,负责游戏逻辑的循环 暂时定为GameScene- scene GameScene obj 调用update 更新游戏,addch ...
- P1257 平面上的最接近点对
题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的 输入输出格式 输入格式: 第一行:n:2≤n≤200000 接下来n行:每行两个实数:x y, ...
- bindColumn、bindParam与bindValue的区别
bindColumn:绑定一列到一个 PHP 变量(类似于list()函数为变量赋值) <?php //连接数据库函数 functionconnect() { try { $dbh = new ...
- Android集成二维码扫描功能
文章转载自 https://github.com/yipianfengye/android-zxingLibrary 在具体介绍该扫描库之前我们先看一下其具体的使用方式,看看是不是几行代码就可以集成 ...
- 六时车主 App iOS隐私政策
本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义务对待这些信息.除本隐私权政策另 ...
- 【译】x86程序员手册03 - 2.1内存组织和分段
2.1 Memory Organization and Segmentation 内存组织和分段 The physical memory of an 80386 system is organized ...
- css特殊效果
border-radius实现特殊形状 .box{ width: 100px; height: 100px; background: orange; border: 1px solid #000; b ...
- Spring学习笔记_day01_ioc
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! Spring_day01 spring是一站式的框架, ...
- quartz 数据库表含义解释
http://blog.csdn.net/tengdazhang770960436/article/details/51019291 一.表信息解析: 1.1.qrtz_blob_triggers : ...