题目链接:http://ac.jobdu.com/problem.php?pid=1456

详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus

参考代码:

//
// 1456 胜利大逃亡.cpp
// Jobdu
//
// Created by PengFei_Zheng on 22/04/2017.
// Copyright © 2017 PengFei_Zheng. All rights reserved.
// #include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cmath>
#include <queue>
#define MAX_SIZE 50
#define WALL 1
#define MOVE 6
using namespace std; int space[MAX_SIZE][MAX_SIZE][MAX_SIZE];
bool visit[MAX_SIZE][MAX_SIZE][MAX_SIZE]; struct N{
int x;
int y;
int z;
int t;
};
queue<N>myQueue; int change[][]={
,,,
-,,,
,,,
,-,,
,,,
,,-
}; int k, a, b, c, t; int BFS(int a, int b , int c){
while(!myQueue.empty()){
N nowP = myQueue.front();
myQueue.pop();
for(int i = ; i < MOVE ; i ++){
int nx = nowP.x + change[i][];
int ny = nowP.y + change[i][];
int nz = nowP.z + change[i][];
if(nx< || nx>=a || ny< || ny>=b || nz< || nz>=c) continue;
if(space[nx][ny][nz] == WALL) continue;
if(visit[nx][ny][nz] == true) continue;
N tmp;
tmp.x = nx;
tmp.y = ny;
tmp.z = nz;
tmp.t = nowP.t + ;
myQueue.push(tmp);
visit[nx][ny][nz] = true;
if(nx==a- && ny==b- && nz==c-) return tmp.t;
}
}
return -;
} int main(){
scanf("%d",&k);
while(k--){
scanf("%d%d%d%d",&a,&b,&c,&t);
for(int i = ; i < a ; i++){
for(int j = ; j < b ; j++){
for(int k = ; k < c ; k++){
scanf("%d",&space[i][j][k]);
visit[i][j][k]=false;
}
}
}
while(!myQueue.empty()) myQueue.pop();
visit[][][] = true;
N tmp;
tmp.x=tmp.y=tmp.z=tmp.t=;
myQueue.push(tmp);
int cost = BFS(a,b,c);
if (cost <= t) printf("%d\n",cost);
else printf("-1\n");
}
return ;
} /**************************************************************
Problem: 1456
User: zpfbuaa
Language: C++
Result: Accepted
Time:20 ms
Memory:2132 kb
****************************************************************/

题目1456:胜利大逃亡(广度优先搜索BFS)的更多相关文章

  1. hdoj 1429 胜利大逃亡(续) 【BFS+状态压缩】

    题目:pid=1429">hdoj 1429 胜利大逃亡(续) 同样题目: 题意:中文的,自己看 分析:题目是求最少的逃亡时间.确定用BFS 这个题目的难点在于有几个锁对于几把钥匙.唯 ...

  2. 胜利大逃亡(续)(bfs+状态压缩)

    胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  3. HDU 1429 胜利大逃亡(续)(bfs+状态压缩,很经典)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

  4. hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. [ACM] hdu 1253 胜利大逃亡 (三维BFS)

    胜利大逃亡 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这但是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,能够被表示 ...

  6. HDU 1429 胜利大逃亡(续)(bfs)

    胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  7. 九度1456胜利大逃亡【BFS】

    时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:4432 解决:1616 题目描述: Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡 ...

  8. hdu1429 胜利大逃亡(续) 【BFS】+【状态压缩】

    题目链接:https://vjudge.net/contest/84620#problem/K 题目大意:一个人从起点走到终点,问他是否能够在规定的时间走到,在走向终点的路线上,可能会有一些障碍门,他 ...

  9. 胜利大逃亡--hdu --1253(bfs)

    Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C ...

随机推荐

  1. T4 好用的Vs扩展

  2. Intellij 2016非服务器激活

    下载 http://idea.lanyus.com/jar/JetbrainsCrack-2.6.2.jar 并将 JetbrainsCrack-2.6.0.jar 放置到 D盘根目录(也可以根据自己 ...

  3. Vue页面跳转$router.push 的用法

    vue2.0在使用的过程中, .vue文件之间的跳转,在template中的常见写法是: <router-link to="/miniCard/statement/horizon&qu ...

  4. shell脚本重启tomcat

    1. 新建shell空脚本文件,如 /home/tr.sh,并设置权限 # chmod 750 /home/tr.sh 2. 设置文件形式: # sed -e 's/\^M//g' /home/tr. ...

  5. 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 5:Softmax Regression

    Softmax Regression Tutorial地址:http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/ 从本节開始 ...

  6. thinkphp路由

    一.普通模式 'url_route_on' => false, 二.混合模式 'url_route_on' => true, 'url_route_must'=> false, 三. ...

  7. 带有logo的二维码

    摘要: 前面介绍了使用javascript生成二维码,但是这样并不能满足我们的需求,我们有时也会看到带有logo的二维码,本文就介绍如何生成带有logo的二维码. 简介: 主要使用了svg的文本和图像 ...

  8. DotNetBar如何控制窗体样式

    在C#中使用控件DevComponents.DotNetBar时,如何创建一个漂亮的窗口,并控制窗体样式呢?   1.新建一个DotNetBar窗体             2.使OFFICE窗口风格 ...

  9. CentOS 6.3 + Subversion + Usvn 搭建版本管理服务器

    一. Subversion 简介 Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像 ...

  10. vuejs使用FormData对象,ajax上传图片文件

    我相信很多使用vuejs的朋友,都有采用ajax上传图片的需求,因为前后端分离后,我们希望都能用ajax来解决数据问题,传统的表单提交会导致提交成功后页面跳转,而使用ajax能够无刷新上传图片等文件. ...