#3127. 26春季HW期末测试 选择题

26春季HW期末测试 选择题

一、单选题(每题 3 分,共 30 分)

第 1 题 在 01 背包中,若使用一维数组 dp[j],为了保证每件物品最多只选一次,容量 j 应该怎样枚举? {{ select(1) }}

  • 从小到大
  • 从大到小
  • 随机顺序
  • 只枚举奇数容量

第 2 题 对数组做多次区间加法,最后询问每个位置的值,最适合使用哪种方法? {{ select(2) }}

  • 差分数组
  • 单调栈
  • 字符串匹配
  • Dijkstra

第 3 题 在二维网格中多次询问子矩形内数字之和,通常应先预处理什么? {{ select(3) }}

  • 二维前缀和
  • 并查集
  • 单调队列
  • 快速幂

第 4 题 BFS 求迷宫最短路时,为什么第一次到达终点就是最短距离? {{ select(4) }}

  • 因为 BFS 按距离从近到远扩展
  • 因为 BFS 会枚举所有排列
  • 因为 BFS 使用递归
  • 因为 BFS 只能走右和下

第 5 题 求一个正整数 n 的质因数分解时,试除因子一般只需要枚举到哪里? {{ select(5) }}

  • n
  • n / 2
  • sqrt(n)
  • log n

第 6 题 单调栈常用于解决哪类问题? {{ select(6) }}

  • 最近一个比当前元素大或小的位置
  • 最短路
  • 高精度加法
  • 判断字符串是否回文

第 7 题 树状数组最常见的两个操作是: {{ select(7) }}

  • 单点修改、前缀和查询
  • 字符串匹配、求最长回文
  • BFS、DFS
  • 排序、二分答案

第 8 题 如果一道题要求“统计区间 [l,r] 中不同数字的个数”,下面哪种思路可能用到树状数组? {{ select(8) }}

  • 按右端点离线处理,维护每个数最后出现的位置
  • 每次都重新排序整个数组
  • 用 BFS 遍历数组
  • 把所有数转成字符串

第 9 题 贪心算法适合使用的前提通常是: {{ select(9) }}

  • 每一步选择局部最优,最终能得到全局最优
  • 数据范围很小
  • 题目中出现字符串
  • 必须使用递归

第 10 题 对于“最大化最小值”这类问题,如果答案具有单调性,常见做法是: {{ select(10) }}

  • 二分答案
  • 暴力输出最大元素
  • DFS 枚举所有字符串
  • 使用二维前缀和