正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-S 2026 第一轮真题 › 第 7 题
CSP-S 2026 第一轮 第 7 题:树状数组维护长度 n=16 的序列
题目
树状数组维护长度 $n=16$ 的序列,查询前缀和 sum(11) 与单点修改 add(3, x) 分别需要访问树状数组中多少个下标( )。
选项
- A. 3 和 4
- B. 4 和 4
- C. 3 和 5
- D. 4 和 3
答案
A
题解
答案是 A:3 和 4。
树状数组用 \(\operatorname{lowbit}(i)=i\&(-i)\) 决定下一个访问位置。
- 查询前缀和
sum(11):每次令 \(i \leftarrow i-\operatorname{lowbit}(i)\)。
\[ 11\rightarrow10\rightarrow8\rightarrow0 \] 到 \(0\) 时停止,因此访问 11、10、8,共 3 个下标。
- 单点修改
add(3, x):每次令 \(i \leftarrow i+\operatorname{lowbit}(i)\)。
\[ 3\rightarrow4\rightarrow8\rightarrow16\rightarrow32 \] 超过 \(n=16\) 时停止,因此访问 3、4、8、16,共 4 个下标。
记忆:查询减 lowbit,修改加 lowbit。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号