简单的最短路 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相关推荐

  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. Hero In Maze 简单版

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

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

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

最新文章

  1. 体育与科技丨清华之友体育产业主题论坛成功举行
  2. Python分页组件
  3. 从开发到上线,一个人的两周产品研发之旅
  4. zabbix监控oracle缓冲区,Zabbix监控oracle各服务器连接数
  5. 物联网无线连接服务发布 阿里云全新产品,物联网设备专用的物联网卡与流量套餐...
  6. linux mxnet 编译,MXnet安装和编译
  7. const 常量_var,let,const 的区别?
  8. realvnc 6 教程 linux,CentOS 6下VNC的安装与配置
  9. python高维数据的读取_索引访问高维数组_Python数据分析与科学计算基础篇1:NumPy图解,使抽象的数据具象为可触摸的图形_深度学习视频-51CTO学院...
  10. L1-043 阅览室-PAT团体程序设计天梯赛GPLT
  11. 在工作中常用到的SQL
  12. 【融云分析】 IM 即时通讯之链路保活
  13. 【语音分析】基于matlab GUI语音信号分析【含Matlab源码 1718期】
  14. 数据库系统概论第五版 课后习题答案王珊
  15. 手机电子词典_论央视主持人的个人修养:习惯性纠正他人读音,手机里装着电子版词典!...
  16. python编辑器怎么放大字体_增大python字体的方法步骤
  17. 阿里云操作系统——飞天(Apsaras)
  18. html5 footer header,W3C HTML5标准阅读笔记 – header、footer、main、address
  19. Cocos2d-html5《王者之剑》实现 (1)
  20. 接口测试 Pytest断言处理_告警断言

热门文章

  1. 谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)
  2. C语言的“编译时多态”
  3. 研究人员发现:基于文本的AI模型容易受到改述攻击
  4. “90后”台湾籍乘务长的第一个大陆春运
  5. Swift封装 滑出式导航栏
  6. 【干货分享】流程DEMO-事务呈批表
  7. 【原创】什么是 wire protocol
  8. 好像博问不能回复了,看似是某个脚本错误阻止了提交。可有此事?
  9. ASP无组件上传带进度条
  10. ONVIF Device Manager修改设备密码