HDU1728 逃离迷宫 【BFS】
逃离迷宫
第1行为两个整数m, n (1 ≤ m, n ≤ 100),分别表示迷宫的行数和列数,接下来m行,每行包括n个字符,其中字符'.'表示该位置为空地,字符'*'表示该位置为障碍,输入数据中只有这两种字符,每组测试数据的最后一行为5个整数k, x1, y1, x2, y2 (1 ≤ k ≤ 10, 1 ≤ x1, x2 ≤ n, 1 ≤ y1, y2 ≤ m),其中k表示gloria最多能转的弯数,(x1, y1), (x2, y2)表示两个位置,其中x1,x2对应列,y1, y2对应行。
#include <stdio.h>
#include <string.h>#define maxn 105
const int dir[][2] = {0, 1, 0, -1, 1, 0, -1, 0};struct Node {int x, y, step;
} que[maxn * maxn]; // 点不能重复入队,但能重复走
int M, N, K, X, Y; // M rows
char G[maxn][maxn];bool check(int x, int y) {return x >= 1 && x <= M && y >= 1 && y <= N && G[x][y] != '*';
}bool BFS(int x0, int y0) {Node u, v;int front = 0, back = 0, i;G[x0][y0] = '*';u.x = x0; u.y = y0; u.step = -1;que[back++] = u;while (front != back) {u = que[front++];if (u.x == X && u.y == Y) return true;if (u.step == K) continue;for (i = 0; i < 4; ++i) {v = u;++v.step;while (true) {v.x += dir[i][0];v.y += dir[i][1];if (!check(v.x, v.y)) break;if (G[v.x][v.y] == '.') que[back++] = v;G[v.x][v.y] = '@'; // mark}}}return false;
} int main() {// freopen("stdin.txt", "r", stdin);int x0, y0, T, i;scanf("%d", &T);while (T--) {scanf("%d%d", &M, &N);for (i = 1; i <= M; ++i)scanf("%s", G[i] + 1);scanf("%d%d%d%d%d", &K, &y0, &x0, &Y, &X);puts(BFS(x0, y0) ? "yes" : "no");}return 0;
}
HDU1728 逃离迷宫 【BFS】相关推荐
- hdu 1728 逃离迷宫 (bfs)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu_1728_逃离迷宫(bfs)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1728 题意:走迷宫,找最小的拐角 题解:对BFS有了新的理解,DFS+剪枝应该也能过,用BFS就要以拐 ...
- HDU - 1728 逃离迷宫(bfs)
题目链接:点击查看 题目大意:给出起点和终点和最多的拐弯次数k,问拐弯次数能否在小于等于k的情况下从起点到达终点 题目分析:bfs,不过和以往的不太一样,以往的bfs都是每次加入一个点,而这个题目的限 ...
- 逃离迷宫 ( BFS /DFS)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- hdoj 1728 逃离迷宫
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 逃离迷宫的路径(打印路径)
题目描述 现在有一个5*5的迷宫,起点在左上角,终点在右下角,现在请你来写一个程序计算一下,LZY从起点开始走迷宫,最终能否成功的逃离迷宫? 如果LZY可以逃出迷宫,请输出逃离迷宫的最短路径,否则输出 ...
- hdu 4524 郑厂长系列故事——逃离迷宫
点击打开链接 郑厂长系列故事--逃离迷宫 T ...
- 郑厂长系列故事——逃离迷宫(C语言)
郑厂长没变 还是那个假厂长真码农改变的是业余爱好 他现在不研究象棋,改玩游戏了! 最近,郑厂长爱上了逃离迷宫这个游戏,他日日夜夜的玩,就是想达到自己的目标:1000万,因为这个数字和他在腾讯的年收入一 ...
- 杭电4524-郑厂长系列故事——逃离迷宫
郑厂长系列故事--逃离迷宫 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- 献给阿尔吉侬的花束(二刷,迷宫bfs,模板题)
文章目录 Question Ideas Code Question 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终 ...
最新文章
- Mybatis【配置文件】就是这么简单
- 带你学python基础:元祖tuple和字典dictionary
- python 将布尔数组取反的方法 True False(b=(a==False))
- Swagger-概述
- linux 截取后缀名,Shell 截取文件名和后缀
- boost::mp11::mp_none_of_q相关用法的测试程序
- redis集群的三种模式
- ASP.NET2.0_多语言本地化应用程序
- bind搭建(二)反向解析
- 组建一个局域网一般会用到哪些设备_路由器和交换机的区别是什么?在实际使用中有哪些不同...
- jsp中redirect和forward的区别
- app接口服务器请求为什么会报错307_Vue接口代理和数据Mock,你会了吗
- fiddler之数据统计(statistics)
- 研究员公开Razer 0day,插入鼠标即可获得Windows管理员权限
- python list中分段_python将list中的元素拼接为一个str
- 手写笔记软件评测Notability、GoodNotes、MarginNote、OneNote
- cisco思科模拟器中断translating域名翻译快捷键
- python3 ZIP文件密码破解
- 杭州逆行崩溃小伙首度回应
- 深入理解Java虚拟机 4.JVM垃圾回收机制详解