首页 > 试题广场 >

迷宫寻路

[编程题]迷宫寻路
  • 热度指数:4662 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}旺仔哥哥被困在一个 n\times m矩形迷宫里。每个格子要么是空地 (用符号 `.` 表示),要么是墙 (用符号 `#` 表示)。旺仔哥哥只能从一个空地移动到其上下左右相邻的空地。
\hspace{15pt}已知旺仔哥哥的起点为左上角 (1,1),终点为右下角 (n,m)。请判断他是否能够到达终点。

输入描述:
\hspace{15pt}第一行输入两个正整数 n,m\ (1\leqq n,m\leqq 100)
\hspace{15pt}接下来的 n 行每行输入一个长为 m 的仅包含字符 `.` 与 `#` 的字符串,描述整个迷宫。
\hspace{15pt}保证起点 (1,1) 和终点 (n,m) 均为空地。


输出描述:
\hspace{15pt}若旺仔哥哥可以走到终点,则输出单词 \text{Yes};否则输出 \text{No}
示例1

输入

3 5
.##.#
.#...
...#.

输出

Yes

说明

路线如下:(1,1)\to (2,1) \to (3,1) \to (3,2)\to (3,3) \to (2, 3) \to (2, 4) \to (2, 5) \to (3, 5)
头像 ikun_ac
发表于 2025-08-08 21:53:14
题目链接 迷宫寻路 题目描述 给定一个 的矩形迷宫。每个格子要么是空地 .,要么是墙 #。只能在空地间按上下左右四个方向移动。起点为左上角 ,终点为右下角 。判断是否存在一条路径从起点到终点。 输入: 第一行两个正整数 、 接下来 行,每行一个长为 的仅包含 . 与 # 的字符串,表示迷宫 展开全文
头像 papybara
发表于 2025-08-19 17:40:48
n,m = map(int,input().split()) desk = [list(input().strip()) for _ in range(n)] x,y = 0,0 pos = [(0,0)] dirs = [(1,0),(0,1),(-1,0),(0,-1)] while True 展开全文
头像 学习小生
发表于 2025-08-28 16:08:35
n , m = map(int,input().split()) arr = [] for i in range(n): arr.append(list(input())) graph = {} for i in range(n): for j in range(m): 展开全文
头像 饥饿的中国人offer多多
发表于 2025-08-07 18:48:37
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static int n, m; public static String ans = " 展开全文
头像 lahm66
发表于 2025-10-09 09:17:07
dfs import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void dfs(char[][] chs,int i,int j){ 展开全文
头像 坦荡的海豚在发呆
发表于 2025-09-22 20:44:01
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () = 展开全文
头像 niuke9999
发表于 2025-12-05 17:06:32
#include <stdio.h> #include <stdlib.h> int main(void) { int n, m; scanf("%d%d", &n, &m); char ch[105][105] 展开全文
头像 牛客754921490号
发表于 2025-12-16 11:19:58
#include <iostream> #include <vector> using namespace std; struct Pt { int y; int x; }; int main() { int n, m; cin >> 展开全文
头像 欢欢在努力
发表于 2025-09-15 23:34:42
这种写法非常适合回溯算法,简洁地实现了 "试探 - 记录 - 回退" 的逻辑,避免了使用额外的条件判断语句。当在当前位置找不到可行路径时,自然会触发回退操作,符合回溯法 "不撞南墙不回头" 的思想。遍历所有可能的方向(dirs 中的 dx, dy)计算新位置 展开全文
头像 N_zip
发表于 2025-07-16 09:27:16
#include <bits/stdc++.h> using namespace std; char a[110][110]; int n, m; bool vis[110][110]; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0 展开全文