黄金城堡线索收集:C++区间求和两种实现方法
这个问题本质上是**静态区间和查询**,因为n≤100,所以最简单的做法是直接对每个查询从L到R循环累加,完全足够。也可以预处理前缀和,复杂度更优。下面给出两种写法的C++代码。 ## C++ 解法一:直接模拟(简单易懂) ```cpp #include <iostream> using namespace std; int main() { int n, q; cin >> n >> q; int a[105]; for (int i = 1; i <= n; i++) { cin >> a[i]; } while (q--) { int L, R; cin >> L >> R; int sum = 0; for (int i = L; i <= R; i++) { sum += a[i]; } cout << sum << endl; } return 0; } ``` ## C++ 解法二:前缀和优化(高效,推荐) ```cpp #include <iostream> using namespace std; int main() { int n, q; cin >> n >> q; int a[105] = {0}; int prefix[105] = {0}; // prefix[i] 表示 a[1] 到 a[i] 的和 for (int i = 1; i <= n; i++) { cin >> a[i]; prefix[i] = prefix[i - 1] + a[i]; } while (q--) { int L, R; cin >> L >> R; cout << prefix[R] - prefix[L - 1] << endl; } return 0; } ``` ## 代码解释 - 解法一直接对每个查询遍历区间,因为n≤100,q也不大,所以完全可行。 - 解法二用前缀和数组`prefix`,先一遍预处理,之后每个查询只需O(1)时间算出结果。 - 注意数组下标从1开始,方便前缀和计算。 ######[AI问答 | 442点数解答 | 2026-08-16 10:04:08]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)441
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)329
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)331
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)318
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)443
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)400
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)642
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)561
- Java 实战:动物类、接口与继承实现鸟儿吃虫和飞翔功能(字节豆包 | 183点数解答 | 2024-09-19 15:53:55)383
- Java 实战:动物类、接口与继承,实现鸟儿吃虫与飞翔功能(字节豆包 | 184点数解答 | 2024-09-19 16:45:48)393
- Java 实现 BankAccount 类:账户余额管理与测试全解析(字节豆包 | 420点数解答 | 2024-10-11 08:48:21)402
- Java 编程:实现教师与学生类的创建、继承及属性操作(字节豆包 | 745点数解答 | 2024-10-16 18:40:42)494