AOJ 6.Hero In Maze
简单的最短路 BFS DFS都可以实现(BFS应该会更快一点吧)
其中输入的N、M、T中,N是列,M是行,而不是和大多数题目一样,N是行,M是列
另外,类中不要乱放常量,类中不要直接为类变量赋初值(不是所有编译器都承认貌似~)
1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 using namespace std; 5 6 #define REP(n) for(int o=0;o<n;o++) 7 8 const int maxn = 25; 9 const int delta[4] = {0,0,1,-1}; 10 11 class LOVE { 12 private: 13 int N,M,T; 14 int x1,y1,x2,y2; 15 bool visited[maxn][maxn];//是否已访问过该位置 16 char map[maxn][maxn];//地图 17 int ans;//结果 18 19 20 void dfs(int x,int y,int l) { 21 if(x < 0 || y < 0 || x >= M || y >= N || 22 visited[x][y] == true || map[x][y] == '*') 23 return; 24 if(x == x2&&y == y2) 25 ans = l; 26 27 visited[x][y] = true; 28 29 for(int i = 0;i < 4;i++) 30 dfs(x + delta[i],y + delta[3 - i],l + 1); 31 32 } 33 34 public: 35 bool Do() { 36 scanf("%d%d%d",&N,&M,&T); 37 //测试数据结束 38 if(N == 0 && M == 0 && T == 0) 39 return false; 40 //输入地图 41 for(int i = 0;i < M;i++) { 42 for(int j = 0;j < N;j++) { 43 char temp; 44 scanf("\n%c\n",&temp); 45 if(temp == 'S') { 46 x1 = i; 47 y1 = j; 48 temp = '.'; 49 } 50 if(temp == 'P') { 51 x2 = i; 52 y2 = j; 53 temp = '.'; 54 } 55 map[i][j] = temp; 56 } 57 } 58 59 //输出地图 60 /* 61 for(int i = 0;i < M;i++) { 62 for(int j = 0;j < N;j++) 63 printf("%c",map[i][j]); 64 printf("\n"); 65 } 66 printf("\n"); 67 */ 68 69 //初始化 70 ans = -1; 71 memset(visited,false,sizeof(visited)); 72 //dfs寻求最短路(用bfs应该会更快点,不过数据小,就不改了) 73 dfs(x1,y1,0); 74 75 /* 76 for(int i = 0;i < M;i++) { 77 for(int j = 0;j < N;j++) 78 printf("%d",visited[i][j]); 79 printf("\n"); 80 } 81 printf("\n"); 82 */ 83 84 printf("%s\n",ans == -1 || ans > T ? "NO" : "YES"); 85 86 return true; 87 } 88 }; 89 90 91 92 int main() { 93 LOVE LIVE; 94 while(LIVE.Do()); 95 return 0; 96 }
转载于:https://www.cnblogs.com/ohyee/p/5246445.html
AOJ 6.Hero In Maze相关推荐
- ACM 广搜 Hero In Maze
这是Hero In Maze三道题,分别是TOJ中Hero In Maze简单版,普通版,提高版. 以下我将一一阐述. TOJ 2777 Hero In Maze简单版 描述 500年前,Jesse是 ...
- 数据结构练习题――Hero In Maze 简单版
数据结构练习题――Hero In Maze 简单版 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:306 ...
- YTU 1006 Hero In Maze
1006: Hero In Maze Time Limit: 1000 Sec Memory Limit:64 MB Submit: 59 Solved: 16 [Submit][Status][ ...
- AOJ-AHU-OJ-6 Hero in maze(拓展)
上次在Hero in maze中我把从白书上学到的BFS分享了一下.但是白书上的<走迷宫>其实是输出走出迷宫路径的.如果想要更好地学习BFS.请看如何打印出拯救公主的路径. 代码如下: # ...
- 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年前, ...
- 台州学院acm:1005 Hero In Maze
1005: Hero In Maze 时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 总提交: 3881 测试通过:979 ...
- 【TOJ 3305】Hero In Maze II
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫, ...
- Hero In Maze 简单版
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫, ...
- 数据结构练习题――Hero In Maze 简单版(JSU-ZJJ)
题目描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人_. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他急忙赶到迷宫, ...
最新文章
- 体育与科技丨清华之友体育产业主题论坛成功举行
- Python分页组件
- 从开发到上线,一个人的两周产品研发之旅
- zabbix监控oracle缓冲区,Zabbix监控oracle各服务器连接数
- 物联网无线连接服务发布
阿里云全新产品,物联网设备专用的物联网卡与流量套餐...
- linux mxnet 编译,MXnet安装和编译
- const 常量_var,let,const 的区别?
- realvnc 6 教程 linux,CentOS 6下VNC的安装与配置
- python高维数据的读取_索引访问高维数组_Python数据分析与科学计算基础篇1:NumPy图解,使抽象的数据具象为可触摸的图形_深度学习视频-51CTO学院...
- L1-043 阅览室-PAT团体程序设计天梯赛GPLT
- 在工作中常用到的SQL
- 【融云分析】 IM 即时通讯之链路保活
- 【语音分析】基于matlab GUI语音信号分析【含Matlab源码 1718期】
- 数据库系统概论第五版 课后习题答案王珊
- 手机电子词典_论央视主持人的个人修养:习惯性纠正他人读音,手机里装着电子版词典!...
- python编辑器怎么放大字体_增大python字体的方法步骤
- 阿里云操作系统——飞天(Apsaras)
- html5 footer header,W3C HTML5标准阅读笔记 – header、footer、main、address
- Cocos2d-html5《王者之剑》实现 (1)
- 接口测试 Pytest断言处理_告警断言
热门文章
- 谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)
- C语言的“编译时多态”
- 研究人员发现:基于文本的AI模型容易受到改述攻击
- “90后”台湾籍乘务长的第一个大陆春运
- Swift封装 滑出式导航栏
- 【干货分享】流程DEMO-事务呈批表
- 【原创】什么是 wire protocol
- 好像博问不能回复了,看似是某个脚本错误阻止了提交。可有此事?
- ASP无组件上传带进度条
- ONVIF Device Manager修改设备密码