利用后缀和数组解决多次区间求和问题
### 🔍思路分析 本题要求计算每次询问的 `a[k] + a[k+1] + ... +a[n]` 的和,为了避免每次询问都进行一次求和操作,我们可以使用后缀和数组 `sum` 来优化。后缀和数组 `sum[i]` 表示从 `a[i]` 到 `a[n]` 的所有元素的和。 ### 💻代码补全 ```cpp #include <iostream> using namespace std; int n, m, k; int a[100010], sum[100010]; //sum为后缀和数组 int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> a[i]; } // 计算后缀和数组 for (int i = n; i >= 1; i--) { sum[i] = sum[i + 1] + a[i]; } for (int i = 1; i <= m ;i++) { cin >> k; cout << sum[k] << endl; } return 0; } ``` ### 📝代码解释 1. **输入部分**:首先读取 `n` 和 `m`,然后读取 `n` 个整数存储在数组 `a` 中。 2. **计算后缀和数组**:通过 `for` 循环从后往前遍历数组 `a`,计算后缀和数组 `sum`。`sum[i]` 等于 `sum[i + 1] + a[i]`。 3. **处理询问**:读取 `m` 个询问的 `k`,直接输出 `sum[k]` 即可。 ### ######[AI问答 | 419点数解答 | 2026-05-24 14:12:17]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)381
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)268
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)272
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)262
- C3期末:精准求解 3 - 20 范围内数列第 k 项值及注意要点(字节豆包 | 242点数解答 | 2025-06-15 11:26:19)171
- C++求解:查找3 - 20项数列第k项值及注意要点(字节豆包 | 325点数解答 | 2025-06-15 11:27:11)193
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)39
- 用Python轻松将PPT每页转为图片,附代码示例!(阿里通义 | 315点数解答 | 2024-04-23 10:01:04)1406
- C++实现:输入整数英文单词算乘积,输出数字与英文结果,可多次计算!(GPT | 2268点数解答 | 2024-05-24 01:55:27)403
- Winform开发:含验证与清空功能的注册页面实现(GPT | 5266点数解答 | 2024-06-14 16:04:40)504
- Python 实战:购物折扣计算、列表求和与平方数推导代码全解(字节豆包 | 235点数解答 | 2024-10-28 14:46:54)247
- Python 实现:在 Windows 系统将 PPT 每页轻松转为图片(百度文心 | 692点数解答 | 2024-10-30 18:08:44)401