酷代码 AI
菜单
服务商

C++实现花园花朵鲜艳值区间求和问题

```cpp #include <iostream> #include <vector> int main() { int n, q; // 输入花的数量 n 和询问次数 q std::cin >> n >> q; std::vector<int> a(n + 1); // 输入每朵花的鲜艳值 for (int i = 1; i <= n; ++i) { std::cin >> a[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]; } for (int i = 0; i < q; ++i) { int L, R; // 输入每次询问的 L 和 R std::cin >> L >> R; // 计算区间 [L, R] 的鲜艳值总和 int sum = prefix_sum[R] - prefix_sum[L - 1]; std::cout << sum << std::endl; } return 0; } ``` 这段代码的思路是先读取花的数量 `n` 和询问次数 `q`,接着读取每朵花的鲜艳值并存储在数组 `a` 中。然后计算前缀和数组 `prefix_sum`,这样可以在 $O(1)$ 的时间复杂度内计算任意区间 `[L, R]` 的鲜艳值总和。对于每次询问,读取 `L` 和 `R`,并输出对应区间的鲜艳值总和。 ######[AI问答 | 385点数解答 | 2026-02-27 20:47:05]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]