Description

500年前,Jesse是我国最卓越的剑客。他英俊潇洒,而且机智过人^_^。
突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中。Jesse听说这个消息已经是两天以后了,他知道公主在迷宫中还能坚持T天,他急忙赶到迷宫,开始到处寻找公主的下落。 时间一点一点的过去,Jesse还是无法找到公主。最后当他找到公主的时候,美丽的公主已经死了。从此Jesse郁郁寡欢,茶饭不思,一年后追随公主而去了。T_T 500年后的今天,Jesse托梦给你,希望你帮他判断一下当年他是否有机会在给定的时间内找到公主。
他会为你提供迷宫的地图以及所剩的时间T。请你判断他是否能救出心爱的公主。

Input

题目包括多组测试数据。 每组测试数据以三个整数N,M,T(0<n, m≤20, t>0)开头,分别代表迷宫的长和高,以及公主能坚持的天数。 紧接着有M行,N列字符,由".","*","P","S"组成。其中 "." 代表能够行走的空地。 "*" 代表墙壁,Jesse不能从此通过。 "P" 是公主所在的位置。 "S" 是Jesse的起始位置。 每个时间段里Jesse只能选择“上、下、左、右”任意一方向走一步。 输入以0 0 0结束。

Output

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

这题有个坑点:先输入列数,再输入的是行数。
自己做的时候改了模板,没用VIS数组,结果一直不对,以后还是老老实实用模板吧。
#include <iostream>
#include <cstdio>
#include<cstring>
#include<queue>
using namespace std;const int maxn = 25;
char sta[maxn][maxn];
bool vis[maxn][maxn];
int dir[4][2]= { {1,0},{-1,0},{0,1},{0,-1} };
int n,ans,m,num,c,d;struct state
{int x;int y;int ccount;
};void bfs(int x,int y)
{queue<state>p;struct state now,t,beg;beg.x=x;beg.y=y;beg.ccount=0;vis[x][y]=1;p.push(beg);while(!p.empty()){int i,a,b;t=p.front();if(t.x==c&&t.y==d){ans=t.ccount;return ;}for(i=0; i<4; i++){a=t.x+dir[i][0];b=t.y+dir[i][1];if(a>=1&&a<=m&&b>=1&&b<=n && vis[a][b]==0 ){now.ccount=t.ccount+1;vis[a][b]=1;now.x=a;now.y=b;p.push(now);}}p.pop();}return ;
}int main()
{while(scanf("%d%d%d",&n,&m,&num)!=EOF){if(n==0&&m==0&&num==0)break;int i,j,a,b;memset(sta,0,sizeof(sta));memset(vis,0,sizeof(vis));ans=10000000;for(i=1; i<=m; i++){for(j=1; j<=n; j++){scanf(" %c",&sta[i][j]);if(sta[i][j]=='S'){a=i;b=j;}else if(sta[i][j]=='*')vis[i][j]=1;else if(sta[i][j]=='P'){c=i;d=j;}}}bfs(a,b);if(ans>num)printf("NO\n");elseprintf("YES\n");}return 0;
}

转载于:https://www.cnblogs.com/coder-tcm/p/8878250.html

Hero In Maze相关推荐

  1. ACM 广搜 Hero In Maze

    这是Hero In Maze三道题,分别是TOJ中Hero In Maze简单版,普通版,提高版. 以下我将一一阐述. TOJ 2777 Hero In Maze简单版 描述 500年前,Jesse是 ...

  2. 数据结构练习题――Hero In Maze 简单版

    数据结构练习题――Hero In Maze 简单版 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:306            ...

  3. YTU 1006 Hero In Maze

    1006: Hero In Maze Time Limit: 1000 Sec  Memory Limit:64 MB Submit: 59  Solved: 16 [Submit][Status][ ...

  4. AOJ-AHU-OJ-6 Hero in maze(拓展)

    上次在Hero in maze中我把从白书上学到的BFS分享了一下.但是白书上的<走迷宫>其实是输出走出迷宫路径的.如果想要更好地学习BFS.请看如何打印出拯救公主的路径. 代码如下: # ...

  5. AOJ-AHU-OJ-6 Hero in Maze

    Hero In Maze Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB Description 500年前, ...

  6. 台州学院acm:1005 Hero In Maze

    1005: Hero In Maze   时间限制(普通/Java):1000MS/10000MS     内存限制:65536KByte 总提交: 3881            测试通过:979 ...

  7. 【TOJ 3305】Hero In Maze II

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

  8. AOJ 6.Hero In Maze

    简单的最短路 BFS DFS都可以实现(BFS应该会更快一点吧) 其中输入的N.M.T中,N是列,M是行,而不是和大多数题目一样,N是行,M是列 另外,类中不要乱放常量,类中不要直接为类变量赋初值(不 ...

  9. Hero In Maze 简单版

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

  10. 数据结构练习题――Hero In Maze 简单版(JSU-ZJJ)

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

最新文章

  1. redis学习之——Redis事务(transactions)
  2. Web安全之命令执行漏洞
  3. Java扑克牌(斗地主,手中牌的排序)【Comparator】
  4. Java多线程(5)--线程通信wait和notify
  5. 前端笔记-vue cli中使用router-link进行路由跳转
  6. python中spider的用法_Spider-PyQuery基本用法(示例代码)
  7. 【原创】ObjectARX中的代理对象
  8. 机器学习/深度学习测试题(二)—— 单层线性神经网络求解异或问题
  9. 小黑课堂c语言题库,未来教育和小黑课堂哪个好 试卷题目是一样的吗
  10. 艾伦·凯(Alan Kay)的深刻见解
  11. 基于spss的非线性回归(non-linear regression)
  12. Base64转换成图片
  13. python PyEnchant(拼写检查)
  14. 计算机网络里面ap是什么,网络ap是什么意思
  15. 【12306购票】测试运行以及完整代码
  16. 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功问题
  17. 淘宝开网店靠谱吗?为什么没有销量?那是因为你犯了以下几点
  18. 小米手机更改默认应用
  19. XGBoost之类别特征的处理
  20. 使用scrapy爬虫,爬取17k小说网的案例-方法二

热门文章

  1. ocr原理 oracle,Oracle技术之RAC Voting disk和OCR的管理
  2. HDFS之namenode文件解析
  3. L2-007 家庭房产 (25分)
  4. 求求你了,不要再自己实现这些逻辑了,开源工具类不香吗?
  5. Centos7安装 mariadb 最新版
  6. mac系统一些快捷键
  7. Docker 概述 与 CentOS 上安装、卸载、启动
  8. 985大学计算机专业保研率排名,2016中国大学保研率排行榜出炉
  9. mysql java 日期_Mysql和JAVA中的几个日期操作
  10. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_15-异常处理-异常处理流程...