HDOJ1253 胜利大逃亡 BFS

胜利大逃亡
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 29528 Accepted Submission(s): 11136

Problem Description
Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.

魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出口就算离开城堡,如果走到出口的时候魔王刚好回来也算逃亡成功),如果可以请输出需要多少分钟才能离开,如果不能则输出-1.

Input
输入数据的第一行是一个正整数K,表明测试数据的数量.每组测试数据的第一行是四个正整数A,B,C和T(1<=A,B,C<=50,1<=T<=1000),它们分别代表城堡的大小和魔王回来的时间.然后是A块输入数据(先是第0块,然后是第1块,第2块……),每块输入数据有B行,每行有C个正整数,代表迷宫的布局,其中0代表路,1代表墙.(如果对输入描述不清楚,可以参考Sample Input中的迷宫描述,它表示的就是上图中的迷宫)

特别注意:本题的测试数据非常大,请使用scanf输入,我不能保证使用cin能不超时.在本OJ上请使用Visual C++提交.

Output
对于每组测试数据,如果Ignatius能够在魔王回来前离开城堡,那么请输出他最少需要多少分钟,否则输出-1.

Sample Input
1
3 3 4 20
0 1 1 1
0 0 1 1
0 1 1 1
1 1 1 1
1 0 0 1
0 1 1 1
0 0 0 0
0 1 1 0
0 1 1 0

Sample Output
11

#include <iostream>
#include <stdio.h>
#include<memory.h>
#include <queue>
#include<algorithm>
#include<string.h>
#include<stdio.h>
#define N 50
using namespace std;
struct node
{
    int x,y,z;
    int time;
};
int directions[6][3]={{1,0,0},{0,1,0},{0,0,1},{-1,0,0},{0,-1,0},{0,0,-1}};
int a,b,c,t;
int map[N][N][N];
node my,cur,nextt;
//用next提交会ce,不能用next的原因是,next可能是其他意思

int BFS(int x,int y,int z)
{

    queue<node>q;/**queue类是为程序员提供了一个队列的功能的容器适配器,
    具体而言,一个FIFO(先入先出)的数据结构**/
    my.x=x;
    my.y=y;
    my.z=z;
    my.time=0;
    q.push(my);/**push()会将一个元素置入queue中。**/
    while(!q.empty())/**empty()判断队列空,当队列空时,返回true。**/
    {
        cur=q.front();/**front()会返回queue内的第一个元素(也就是第一个被置入的元素)。**/
        q.pop();
        /**pop()会从queue中移除一个元素。
注意:pop()虽然会移除下一个元素,但是并不返回它,
front()和back()返回下一个元素但并不移除该元素。**/
        for(int i=0;i<6;i++)
        {
            nextt.x=cur.x+directions[i][0];
            nextt.y=cur.y+directions[i][1];
            nextt.z=cur.z+directions[i][2];
            if(nextt.x<a&&nextt.y<b&&nextt.z<c&&nextt.x>=0&&nextt.y>=0&&nextt.z>=0&&map[nextt.x][nextt.y][nextt.z]!=1&&nextt.time<=t)
            {

                if(nextt.x==a-1&&nextt.y==b-1&&nextt.z==c-1)  /**如果找到了出口 返回当前走的步数**/
                    return cur.time+1;
                nextt.time=cur.time+1;                       /**下一步可以走该方向,将该方向的信息完善后打入队列中**/
                q.push(nextt);/**push()会将一个元素置入queue中。**/
                map[nextt.x][nextt.y][nextt.z]=1;              /**标记一下该方向的节点已经走过**/
            }
        }
    }
    return -1;
}

int main()
{
    int sum,i,j,x,k;
    scanf("%d",&x);
    while(x--)
    {
        scanf("%d%d%d%d",&a,&b,&c,&t);
            for(i=0;i<a;i++)
                {
                    for(k=0;k<b;k++)
                    {
                        for(j=0;j<c;j++)
                        {
                            scanf("%d",&map[i][k][j]);
                        }
                    }
                }
        sum=BFS(0,0,0);
        printf("%d\n",sum);
    }

    return 0;
}
时间: 2024-09-20 05:48:01

HDOJ1253 胜利大逃亡 BFS的相关文章

互联网巨头中国高管集体上演“胜利”大逃亡

中介交易 SEO诊断 淘宝客 云主机 技术大厅 临近2006年岁末的时候,因为各自公司的中国高管集体上演了一幕"胜利"大逃亡的好戏,而让国际 互联网巨头们倍感尴尬.从 MSN中国的罗川.宫力,到雅虎中国的谢文,Google的周韶宁,巨头们的好日子似乎到头了. 事实上,好运气似乎从未光顾过这些大洋彼岸的网络公司.在融入中国市场的进程中,国际互联网巨头几乎全军覆没,其中不乏AOL.雅虎.Google.eBay等全球知名的互联网企业在内,这与全球经济的发展大势南辕北辙. "互联网的

《绝地求生:大逃亡》赚4亿美元,中国玩家比例最高

根据外媒报道,本年度最火的游戏<绝地求生:大逃杀>自3月份来已售1300万份拷贝,赚约4亿美元. 报道称,该游戏技术上来说尚未完成,玩家只能从Steam上购买该游戏的"抢先体验版". 它已经成为了目前全球最大的游戏平台--Steam上,在线玩家排名数第一的游戏,在线玩家超过100万人,超过了<Dota2>.雷锋网知悉,预计在今年年底, 该游戏会推出1.0版本,并且会推出Xbox版本. 而本周五,腾讯宣布正式宣布拿下该游戏的代理权.根据SteamSoy统计数据,该

无线新闻部新年“大逃亡”员工起薪点7年未变

香港电子媒体起薪表 无线新闻部新年大逃亡 (记者 何珊)无线小气一向出了名,与四大唱片公司的 版权纠纷就跟钱有关,无线艺人拍<七十二家租客>时被爆只收到一封写着"无言感激"字句的利是,<都市闲情>.<大厨出马>等节目的嘉宾也只能得到一个价值68港元的"TV Buddy公仔".越来越多无线艺人无法忍受低薪考虑离巢,林保怡.蒙嘉慧等都于近期不与无线签经纪约,连一姐佘诗曼也自爆如果要续约首先必须加薪.受低薪影响的还有无线电视新闻部,近期

宝洁经销商大逃亡

年销售额过1.5亿元,一度在宝洁庞大的经销商体系中排名第27位--正是这样一枚为宝洁在 中国市场攻城略地且战功赫赫的马前卒,却在2010年末,出人意料地曝出惊天消息:停下已经做了七年的宝洁生意,撒手不干了-- 文/本刊记者 樊 力 徐州,自古为兵家与商家的必争之地.所谓"九朝帝王徐州籍",诸如刘邦项羽等一大帮徐州籍草根斗士,让这方地域充满了改朝换代的历史叠影,以及"舍得一身剐,敢把皇帝拉下马"的彪悍血气-- 徐州万吉商贸俨然如此.它是日化巨擘宝洁公司的中国分销商,年

5月3日蚕豆网不推荐的Android应用:《裸男大逃亡》

前言:如雨后春笋般杂乱滋生的Android app遍布于网络中.下载平台中.用户的手机中,目前由于监管不严.开放性过大这些应用的安全性便成了当前Android手机最大问题.通讯录被复制.私人照片丢失.信息被公开等等事件的出现,其罪魁祸首当属那些存在安全隐患.内藏恶意代码的Android手机应用.鉴于此情况, 蚕豆网联合<安全管家>定期为大家审查Android应用的安全性,尽我们最大力量来帮助用户来认清app.选择app,把最安全.最稳定的Android环境奉献给广大用户.应用名称: 裸男大逃亡

无线新闻部新年大逃亡起薪点7年都未变(图)

香港电子媒体起薪表 无线新闻部新年大逃亡 (记者 何珊)无线小气一向出了名,与四大唱片公司的 版权纠纷就跟钱有关,无线艺人拍<七十二家租客>时被爆只收到一封写着"无言感激"字句的利是,<都市闲情>.<大厨出马>等节目的嘉宾也只能得到一个价值68港元的"TVBuddy公仔".越来越多无线艺人无法忍受低薪考虑离巢,林保怡.蒙嘉慧等都于近期不与无线签经纪约,连一姐佘诗曼也自爆如果要续约首先必须加薪.受低薪影响的还有无线电视新闻部,近期接

50天!3家!共享单车终于开始了“大逃亡”

还记得当年的"千团大战"么?惨烈至极.血流成河.但最终,仅剩下美团和大众点评--二者还合二为一了.与其相似的,还有共享打车行业.社交行业.信息分类行业等.国内特殊的互联网形势决定了,在一条赛道上只能容下数名大佬参赛者比拼,其余的在半路上就会被提前淘汰出局.而在目前火爆的共享单车行业,似乎也要"拧干水分",显现出最残酷的一面. 数据显示,从6月中旬到8月初,短短的50天中已经有三家共享单车企业倒闭.而这或许只是一个信号,随着时间的推移,共享单车行业有可能还会加快洗牌的

横冲直撞 《鲁莽大逃亡》试玩

前言:我们都知道抓捕匪徒是警察的天职,警察自然也是法律正义的化身,因此在很多警匪题材的游戏中玩家所扮演的角色不外乎警察这类职业.不过不知道各位玩家们是否产生过想要体验一下匪徒在闯过警察重重围堵后顺利逃脱的成就感呢?那么苹果iOS系统平台中警匪题材游戏--<鲁莽大逃亡(Reckless Getaway)>就为我们提供了这样一个机会,那么接下来我们就一起开始逃亡的旅程吧.警匪题材游戏--<鲁莽大逃亡>点击下载银行劫匪逃亡之旅某年7月18日下午2时49分,一间银行被一名匪徒所洗劫,在警察

矿洞里的宝石之旅 《矿车大逃亡》试玩

障碍设置<神庙逃亡>掀起的跑酷热一直在持续升温,<地铁冲浪>.<弗雷德狂奔>.<荒野求生>等等都是我们耳熟能详的热门 跑酷游戏.对于这些热门的游戏,不用做过多介绍,大家也已经都非常熟悉了.今天小编要带大家试玩的依然是一款跑酷游戏--<矿车大逃亡>,乍一看起来,这款游戏就是<地铁冲浪>和<神庙逃亡2>里矿洞部分的结合体,但其实从发布时间上看,<矿车大逃亡>可以算得上是 它们的前辈了.在<矿车大逃亡>里