CSP-J 入门级 · CSP 2026 入门级第一轮 第 8 题

选择题 · 答案 C · 考点:BFS(广度优先搜索)、图的基本概念、模拟

← 整套速查表 CSP-J 入门级 全部真题

题目

【单选】下图为 5×5 网格,行号、列号均从 0 开始,# 为障碍,. 为可通行格。从 S 出发做广度优先搜索(BFS):初始时把 S 入队;每次取出队首格子,按“上、下、左、右”的顺序遍历它的四个相邻格子,越界、障碍或已访问的格子跳过,其余格子标记为已访问并入队。当 E 第一次入队时,已经入队过的格子(含 S 和 E)共有多少个( )。

答案:C

考点

BFS(广度优先搜索)图的基本概念 讲解 →图的基本概念 真题汇总 →模拟 讲解 →模拟 真题汇总 →

解题思维

严格按题面给的顺序"上、下、左、右"模拟 BFS 队列,把每次新入队的格子编号(1 是 S)。注意"E 第一次入队"就是问 E 是第几个被入队的格子。

常见错误

把邻居顺序改成常见的"上下左右"之外(如先左右后上下)导致编号错位;或把已访问标记放在出队时才做,造成重复入队;也容易忘掉"S 和 E 自身都算"。

详细解析(节选)

这道题在问什么

在一张 5×5 的网格上,从起点 S 出发做广度优先搜索(BFS),按题目规定的“上、下、左、右”顺序扩展邻居。问的是:当终点 E 第一次被放入队列时,从开始到此刻,队列里一共放进去过多少个格子(S 和 E 都要算上)?

逐个解释

网格与规则

行号、列号从 0 开始,障碍(#)位于 (0,3)、(1,3)、(2,3)、(3,0)、(3,1)、(4,3),S 在 (0,0),E 在 (3,4):

行\列  0    1    2    3    4
 0    S    .    .    #    .
 1    .    .    .    #    .
 2    .    .    .    #    .
 3    #    #    .    .    E
 4    .    .    .    #    .

邻居按 上、下、左、右 顺序考察;越界 / 障碍 / 已访问一律跳过;被访问的格子标记并入队。

怎样模拟 BFS(逐步入队)

把每次新入队的格子依次编号(S 是第 1 个)。下面每一行记:这一轮“出队的是谁”,以及按“上、下、左、右”新入队了谁(跳过越界、障碍、已访问):

出队格本轮按“上、下、左、右”新入队
(0,0) S=①下(1,0)=②、右(0,1)=③
(1,0)=②下(2,0)=④、右(1,1)=⑤
(0,1)=③右(0,2)=⑥(上越界;下(1,1)已访问;右(0,3)是障碍——都跳过)
(2,0)=④右(2,1)=⑦(下(3,0)是障碍,跳过)
(1,1)=⑤右(1,2)=⑧
(0,2)=⑥无新格(右是障碍,下已访问)
(2,1)=⑦右(2,2)=⑨(下(3,1)是障碍,跳过)
(1,2)=⑧无新格(右是障碍)
(2,2)=⑨下(3,2)=⑩(右是障碍)
(3,2)=⑩下(4,2)=⑪、右(3,3)=⑫
(4,2)=⑪左(4,1)=⑬(右是障碍)
(3,3)=⑫右 (3,4)=E=⑭

E 第一次入队时编号为 14,即“已经入队过的格子(含 S 和 E)”共 14 个,选 C。

其他选项为什么错

记忆点

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断