#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) }}
nn / 2sqrt(n)log n
第 6 题 单调栈常用于解决哪类问题? {{ select(6) }}
- 最近一个比当前元素大或小的位置
- 最短路
- 高精度加法
- 判断字符串是否回文
第 7 题 树状数组最常见的两个操作是: {{ select(7) }}
- 单点修改、前缀和查询
- 字符串匹配、求最长回文
- BFS、DFS
- 排序、二分答案
第 8 题 如果一道题要求“统计区间 [l,r] 中不同数字的个数”,下面哪种思路可能用到树状数组?
{{ select(8) }}
- 按右端点离线处理,维护每个数最后出现的位置
- 每次都重新排序整个数组
- 用 BFS 遍历数组
- 把所有数转成字符串
第 9 题 贪心算法适合使用的前提通常是: {{ select(9) }}
- 每一步选择局部最优,最终能得到全局最优
- 数据范围很小
- 题目中出现字符串
- 必须使用递归
第 10 题 对于“最大化最小值”这类问题,如果答案具有单调性,常见做法是: {{ select(10) }}
- 二分答案
- 暴力输出最大元素
- DFS 枚举所有字符串
- 使用二维前缀和