Hero In Maze

时间限制(普通/Java):1000MS/10000MS          执行内存限制:65536KByte

描写叙述

500年前,Jesse是我国最卓越的剑客。

他英俊潇洒,并且机智过人^_^。



突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中。

Jesse听说这个消息已经是两天以后了,他知道公主在迷宫中还能坚持T天,他急忙赶到迷宫,開始到处寻找公主的下落。

时间一点一点的过去。Jesse还是无法找到公主。

最后当他找到公主的时候,漂亮的公主已经死了。从此Jesse郁郁寡欢,茶饭不思。一年后追随公主而去了。T_T

500年后的今天,Jesse托梦给你,希望你帮他推断一下当年他是否有机会在给定的时间内找到公主。

他会为你提供迷宫的地图以及所剩的时间T。

请你推断他能否救出心爱的公主。

输入

题目包含多组測试数据。


每组測试数据以三个整数N,M,T(0<n, m≤20, t>0)开头,分别代表迷宫的长和高,以及公主能坚持的天数。

紧接着有M行。N列字符,由".","*"。"P","S"组成。

当中

"." 代表可以行走的空地。

"*" 代表墙壁。Jesse不能从此通过。

"P" 是公主所在的位置。

"S" 是Jesse的起始位置。

每一个时间段里Jesse仅仅能选择“上、下、左、右”随意一方向走一步。

输入以0 0 0结束。

输出

假设能在规定时间内救出公主输出“YES”,否则输出“NO”。

例子输入

4 4 10

....

....

....

S**P

0 0 0

例子输出

YES

AC代码例如以下

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <queue>
#define M 1000005
#define ll long long
using namespace std; int DTx[4]={-1,0,1,0};
int DTy[4]={0,1,0,-1};
char map[25][25];
int dp[25][25];
int x,y,X,Y;
int minn;
int n,m,t; struct H{
int x,y;
int time;
}; int bfs(int h,int z)
{
int i,j;
queue <H> q;
H a,b,c;
a.x=h;
a.y=z;
a.time=0;
q.push(a);
while(!q.empty())
{
b=q.front();
q.pop();
if(b.x==X&&b.y==Y)
return b.time;
for(i=0;i<4;i++)
{
c.x=b.x+DTx[i];
c.y=b.y+DTy[i];
if(c.x>=0&&c.x<m&&c.y>=0&&c.y<n&&!dp[c.x][c.y])
{
dp[c.x][c.y]=1;
c.time=b.time+1;
q.push(c);
}
}
}
return 0;
} int main()
{
int i,j;
while(~scanf("%d%d%d",&n,&m,&t)&&(n||m||t))
{
memset(dp,0,sizeof dp);
for(i=0;i<m;i++)
cin>>map[i];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(map[i][j]=='S')
{x=i;y=j;dp[i][j]=1;}
else if(map[i][j]=='P')
{X=i;Y=j;}
else if(map[i][j]=='*')
dp[i][j]=1; //printf("%d %d %d %d\n",x,y,X,Y);
minn=bfs(x,y);
/*for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<dp[i][j]<<" ";
cout<<endl;
}*/
//printf("%d\n",minn);
if(minn==0)
{
printf("NO\n");
continue;
}
if(minn<=t)
printf("YES\n");
else printf("NO\n");
}
return 0;
}

Hero In Maze的更多相关文章

  1. 1006: Hero In Maze

    1006: Hero In Maze 时间限制: 1000 Sec  内存限制: 64 MB提交: 417  解决: 80[提交][状态][讨论版][命题人:外部导入] 题目描述 500年前,Jess ...

  2. YTU 1006: Hero In Maze

    1006: Hero In Maze 时间限制: 1000 Sec  内存限制: 64 MB 提交: 72  解决: 22 题目描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人 ...

  3. TZOJ 3305 Hero In Maze II(深搜)

    描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫,开 ...

  4. Hero In Maze(BFS广搜)

    Description 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了, ...

  5. TOJ 1005 Hero In Maze (深搜)

    描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他知道公主在迷宫 ...

  6. 【TOJ 3305】Hero In Maze II

    描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫,开 ...

  7. 3305: Hero In Maze II (优先队列+bfs)

    Description 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了, ...

  8. ACM-Hero In Maze

                                                   Hero In Maze 时间限制(普通/Java):1000MS/10000MS          运行 ...

  9. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

随机推荐

  1. HDU 5514 Frogs

    Frogs Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: 5514 ...

  2. [android开发篇]activity组件篇

    https://developer.android.com/guide/components/activities.html Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打 ...

  3. ubuntu系统下如何禁用笔记本触摸板

    命令行方式,得每次用终端输入命令行设置,不方便. sudo rmmod psmouse          # 用来禁用触摸板 sudo modprobe psmouse     # 用来启用触摸板 想 ...

  4. POJ-1065 Wooden Sticks,排序+最长单减子序列!

                                                       Wooden Sticks 题意:有一台机器处理木材,最开始需要一分钟准备,如果后面处理的木材比前 ...

  5. [Kubernetes]容器健康检查和恢复机制

    在Kubernetes中,可以为Pod里的容器定义一个健康检查探针(Probe),这样Kubernetes会根据这个Probe的返回值决定这个容器的状态,而不是直接以容器是否允许(来自Docker返回 ...

  6. Java&Android代码规范

    项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Go ...

  7. 刷题总结——系列维护(ssoi)

    题目: 题解: 题解如上图,至于计算大于s的数字的数量和小于s数字的和用权值线段树或者树状数组维护就行了···注意离散化 另外发现cout和puts比printf快好多····· 代码: #inclu ...

  8. tomact和eclipse的关联

    tomact和eclipse的关联有很多文档,这里说下下面的问题: 问题: tomact安装成功,点击startup.sh能正常访问,通过eclipse启动后,不能打开8080页面  解决: l  重 ...

  9. 常州模拟赛d2t1 小X的质数

    题目背景 小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的 情感.小 X 认为,质数是一切自然数起源的地方. 题目描述 在小 X 的认知里,质数是除了本身和 1 以外,没有其他因 ...

  10. 【数位DP】bnuoj 52813 J. Deciphering Oracles

    http://acm.bnu.edu.cn/v3/contest_show.php?cid=9208#problem/J [AC] #include<bits/stdc++.h> usin ...