#JC1058. 广度搜索进阶

广度搜索进阶

一、单项选择题(每题2分,共20分)

1、广度优先搜索BFS底层依靠哪种数据结构实现?() {{ select(1) }}

  • 栈
  • 队列
  • 优先队列
  • 数组

2、BFS搜索的遍历特点是?() {{ select(2) }}

  • 一条路径走到头,走不通再回溯
  • 逐层向外扩散,优先访问离起点近的结点
  • 只可以处理排序问题
  • 必须使用递归实现

3、BFS处理迷宫,标记数组vis正确打标记时机是?() {{ select(3) }}

  • 入队的时候立刻标记vis=1
  • 出队的时候再标记vis=1
  • 判断终点的时候标记
  • 找到答案之后统一标记

4、在4方向迷宫BFS中,dx、dy数组的作用是?() {{ select(4) }}

  • 存储地图障碍物信息
  • 记录每个格子的最短步数
  • 保存上下左右坐标偏移量
  • 标记格子是否访问

5、关于BFS求无权地图最短路径,下面说法正确的是?() {{ select(5) }}

  • BFS不适合求最短路径,要用DFS
  • BFS按层遍历,step就是起点到该点最少步数
  • step数值在出队的时候再加1
  • 最短路径问题不能使用vis标记数组

6、泛洪算法(图像填充)的主要用途是?() {{ select(6) }}

  • 排序数组元素
  • 将连通区域的像素统一替换成目标颜色
  • 计算迷宫总格子数
  • 寻找数组最大值

7、山峰山谷题目中,连通块采用的相邻判断方式是?() {{ select(7) }}

  • 仅上下左右4方向
  • 8方向(包含对角线)
  • 只能向右向下
  • 只能斜向移动

8、山峰山谷,如果整张地图所有格子高度全部相同,则() {{ select(8) }}

  • 只是山峰
  • 只是山谷
  • 既是山峰,同时也是山谷
  • 既不是山峰,也不是山谷

9、带状态BFS(棋盘魔法题),队列结构体中不需要保存下面哪一项?() {{ select(9) }}

  • 当前坐标x、y
  • 当前累计花费金币
  • 魔法是否可用状态
  • 整张地图完整拷贝

10、BFS循环条件while(!q.empty())含义是?() {{ select(10) }}

  • 队列为空继续循环
  • 队列不为空的时候继续循环
  • 队列满的时候退出循环
  • 每次循环清空队列

二、判断题(每题2分,共10分)

11、BFS和DFS都可以完成连通块搜索、泛洪填充的任务。() {{ select(11) }}

  • 正确
  • 错误

12、BFS适合路径计数类问题,DFS更适合求无权图最短路径。() {{ select(12) }}

  • 正确
  • 错误

13、普通迷宫连通性问题,nx、ny必须做边界判断,防止数组越界。() {{ select(13) }}

  • 正确
  • 错误

14、山峰山谷题目,只要邻格高度不相等,就直接跳过不做判断。() {{ select(14) }}

  • 正确
  • 错误

15、带状态广搜,同一个坐标,不同状态要分开入队处理。() {{ select(15) }}

  • 正确
  • 错误