1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

核心思路

使用 广度优先搜索(BFS) 求解迷宫最短路径问题。BFS 自然保证第一次到达某状态时即为最短步数。

  1. 预处理 扫描整个地图,记录:

    • 起点 SSS 的坐标;
    • 终点 EEE 的坐标(可选,仅用于判断何时结束);

P3641.第1题-迷宫最短路径

    1000ms Tried: 1067 Accepted: 208 Difficulty: 5 所属公司 : 华为
    算法与标签>BFS

题目内容

给定一个迷官的地图,地图是一个二维矩阵,其中 000 表示通道,111 表示墙壁,sss 表示起点,EEE 表示终点。你需要从起点 SSS 出发,通过最路径到达终点 EEE ,返回最短路径的步数,如果无法到达终点,则返回 −1-1−1,迷宫中会有虫洞,用数字 222 表示,成对出现,你走入虫洞可以穿越到另一个虫洞出口,耗费 000 步。

你只能上下左右移动,并且不能走出迷官的边界,也不能穿越墙壁

输入描述

第一行包含两个整数 m,n(1≤m,n≤50)m,n(1≤m,n≤50)m,n(1≤m,n≤50) ,表示迷宫的行数和列数。

接下来的 mmm 行,每行包含 nnn 个字符,表示迷宫的地图。字符为:

000:表示通道

111:表示墙壁

222:表示虫洞

SSS:表示起点

EEE:表示终点

输出描述

如果能够到达终点,输出最短路径的步数。 如果无法到达终点,输出 −1-1−1 。

样例1

输入

5 5
S0000
11110
01010
01010
0000E

输出

8

说明

在这个例子中,最短的路径如下所示:

S−>(0,1)−>(0,2)−>(0,3)−>(0,4)−>(1,4)−>(2,4)−>(3,4)−>ES ->(0,1)->(0,2)->(0,3)->(0,4)->(1,4)->(2,4)->(3,4)->ES−>(0,1)−>(0,2)−>(0,3)−>(0,4)−>(1,4)−>(2,4)−>(3,4)−>E

共8步。

样例2

输入

3 3
S00
111
E00

输出

-1

说明

在这个例子中,起点 555 和终点 EEE 被墙壁阻隔,因此无法到达终点,输出 −1-1−1 。

样例3

输入

3 3
S02
111
E02

输出

4

说明

在这个例子中,最短的路径如下所示:

S−>(0,1)−>(0,2)−>(2,1)−>ES ->(0,1)->(0,2)->(2,1)->ES−>(0,1)−>(0,2)−>(2,1)−>E 共 444 步。

(0,2)(0,2)(0,2) 进入虫洞后,可直接从 (2,1)(2,1)(2,1) 出来,不消耗步数

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 49ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?