2344. 营救行动

1000ms 256MB 简单 广度优先搜索 BFS
题目描述
一只野生小鹿被困在了一个大小为 $n \times n$ 的家园的 $(n, n)$ 位置。内格从 $(1, 1)$ 位置出发去解救小鹿。 请编写程序,计算内格是否可以成功解救小鹿。内格只能在**上下左右**四个方向移动。 **要求:使用广度优先搜索(BFS)算法实现。**
输入格式
- 第一行包含一个正整数 $n$ ($2 \le n \le 10$),表示方格图的大小。 - 接下来 $n$ 行,每行包含 $n$ 个字符(字符之间用空格隔开): - `.` 表示可通行的道路。 - `#` 表示不可通行的障碍物。
输出格式
- 输出一行。若能够成功解救,输出 `YES`;否则输出 `NO`。
样例 1
输入 (Input)
7
. # # . . . .
. # . . . . .
. . . . # . .
. . . . . . #
# # . # . . .
# # # . # # .
. # # # . . .                 

---->>>>>🦌在(n,n)
输出 (Output)
YES
- 对于所有数据:$2 \le n \le 10$。 - **输入读取提示**: 输入字符之间可能有空格。在 C++ 中,如果直接使用 cin >> char 读入每个格子的状态,`cin` 会自动跳过空格和换行符,这能完美避免因为空格导致的数据错位问题。 - **算法提示**: 本题要求使用**广度优先搜索(BFS)**。 1. 建立一个队列,将起点 $(0, 0)$ 入队,并标记为已访问。 2. 每次从队首取出一个点,判断它是否为终点 $(n-1, n-1)$。如果是,则表示可以到达,输出 `YES`。 3. 如果不是,向其上下左右四个方向拓展。若相邻的点在矩阵范围内、不是障碍物且未被访问过,则将其入队并标记为已访问。 4. 如果队列为空时仍未到达终点,说明无法连通,输出 `NO`。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字