Hero In Maze
Hero In Maze
描写叙述
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”。
例子输入
....
....
....
S**P
0 0 0
例子输出
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的更多相关文章
- 1006: Hero In Maze
1006: Hero In Maze 时间限制: 1000 Sec 内存限制: 64 MB提交: 417 解决: 80[提交][状态][讨论版][命题人:外部导入] 题目描述 500年前,Jess ...
- YTU 1006: Hero In Maze
1006: Hero In Maze 时间限制: 1000 Sec 内存限制: 64 MB 提交: 72 解决: 22 题目描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人 ...
- TZOJ 3305 Hero In Maze II(深搜)
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫,开 ...
- Hero In Maze(BFS广搜)
Description 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了, ...
- TOJ 1005 Hero In Maze (深搜)
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他知道公主在迷宫 ...
- 【TOJ 3305】Hero In Maze II
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫,开 ...
- 3305: Hero In Maze II (优先队列+bfs)
Description 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了, ...
- ACM-Hero In Maze
Hero In Maze 时间限制(普通/Java):1000MS/10000MS 运行 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
随机推荐
- ssh执行远程服务器脚本 提示php: command not found
ssh执行远程服务器脚本 提示php: command not found 设置环境变量 一台机器作为管理机,来管理其他服务器,并通过key认证,免密码登陆的. 在管理机上通过ssh登陆到其他服务器来 ...
- mongodb权限机制以及扩展
mongodb权限机制 启动权限机制之前要先在MONGODB中添加管理员账号: 1. 创建账号 重装安装一个mongodb,安装时添加一个 --auth参数: 先把安装好的从服务中删除掉(删除之后数据 ...
- NYOJ 814 又见拦截导弹
又见拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦 ...
- GDB使用例子
GDB使用例子 一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中.使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点. ...
- 2017 Wuhan University Programming Contest (Online Round) D. Events,线段树区间更新+最值查询!
D. Events 线段树区间更新查询区间历史最小值,看似很简单的题意写了两天才写出来. 题意:n个数,Q次操作,每次操作对一个区间[l,r]的数同时加上C,然后输出这段区间的历史最小值. 思路:在线 ...
- 【Luogu】P3414组合数(快速幂)
题目链接 从n的元素中选零个,选一个,选两个,选三个...选n个的方案数和,其实就是n个元素中取任意多个元素的方案数,那对于每一个元素,都有取或不取两种情况,所以方案数最终为2^n个. #includ ...
- vue 组件高级用法实例详解
一.递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了. 示例如下: <div id="app19"> <my-compone ...
- LA 4973异面线段
题目大意:给两条线段求他们间的最小距离的平方(以分数形式输出). 贴个模版吧!太抽象了. #include<cstdio> #include<cmath> #include&l ...
- SPOJ 4060 A game with probability
博弈论+dp+概率 提交链接- 题意不是很好懂 Ai 表示剩 i 个石头. A 先手的获胜概率. Bi 表示剩 i 个石头. B先手的获胜概率. 如果想选,对于 Ai: 有 p 的概率进入 Bi−1 ...
- 关于MySQL的事务处理及隔离级别
原文地址 :http://blog.sina.com.cn/s/blog_4c197d420101awhc.html 事务是DBMS得执行单位.它由有限得数据库操作序列组成得.但不是任意得数据库操作序 ...