桃子花园花美丽值区间求和问题的C++代码实现
以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <vector> int main() { int n; std::cin >> n; // 存储每朵花的美丽值 std::vector<int> a(n + 1); for (int i = 1; i <= n; ++i) { std::cin >> a[i]; } // 计算前缀和,prefix_sum[i] 表示前 i 朵花的美丽值总和 std::vector<int> prefix_sum(n + 1, 0); for (int i = 1; i <= n; ++i) { prefix_sum[i] = prefix_sum[i - 1] + a[i]; } int m; std::cin >> m; // 处理每次检测 for (int i = 0; i < m; ++i) { int L, R; std::cin >> L >> R; // 区间 [L, R] 的美丽值总和等于前 R 朵花的美丽值总和减去前 L - 1 朵花的美丽值总和 int sum = prefix_sum[R] - prefix_sum[L - 1]; std::cout << sum << std::endl; } return 0; } ``` ### 代码解释 1. **输入花的数量和美丽值**:先读入花的数量 `n`,然后读入每朵花的美丽值并存入数组 `a`。 2. **计算前缀和**:创建一个前缀和数组 `prefix_sum`,`prefix_sum[i]` 表示前 `i` 朵花的美丽值总和。通过遍历数组 `a`,计算出前缀和数组的值。 3. **输入检测次数和区间**:接着读入检测次数 `m`,对于每次检测,读入区间 `[L, R]`。 4. **计算区间和并输出**:利用前缀和数组计算出区间 `[L, R]` 内所有花的美丽值总和,即 `prefix_sum[R] - prefix_sum[L - 1]`,并输出结果。 ### 复杂度分析 - **时间复杂度**:计算前缀和的时间复杂度为 $O(n)$,每次查询的时间复杂度为 $O(1)$,总共进行 $m$ 次查询,因此总的时间复杂度为 $O(n + m)$。 - **空间复杂度**:使用了前缀和数组,空间复杂度为 $O(n)$。 ######[AI问答 | 597点数解答 | 2026-08-29 20:22:52]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)448
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)333
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)338
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)322
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)571
- Java 实例:简单工厂模式实现果园苹果、草莓、桃子生产(字节豆包 | 524点数解答 | 2024-10-17 16:20:22)343
- C++模拟抽牌决定值日程序(百度文心 | 618点数解答 | 2026-03-13 20:28:38)76
- Pygame实现种树游戏:种树、合成与买卖乐趣多(字节豆包 | 2138点数解答 | 2026-06-08 15:39:01)65
- C++实现人员排列方式计算及开发建议(字节豆包 | 698点数解答 | 2026-08-10 18:56:48)22
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)484
- C++实现:输入整数英文单词算乘积,输出数字与英文结果,可多次计算!(GPT | 2268点数解答 | 2024-05-24 01:55:27)452
- C语言巧解:计算整数区间内最遥远素数差值(阿里通义 | 428点数解答 | 2024-11-22 14:53:33)228