C++实现花园花朵美丽值区间查询及优化方案
### 🌷思路分析 本题需要多次查询区间 `[L, R]` 内所有花的美丽值总和。可以先将每朵花的美丽值存储在数组中,然后对于每次查询,遍历该区间内的所有元素并求和。 ### 💻代码实现 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; // 输入花的数量 vector<int> a(n + 1); // 存储每朵花的美丽值,下标从 1 开始 for (int i = 1; i <= n; ++i) { cin >> a[i]; } int m; cin >> m; // 输入检测次数 for (int i = 0; i < m; ++i) { int L, R; cin >> L >> R; // 输入每次检测的区间 [L, R] int sum = 0; // 计算区间 [L, R] 内所有花的美丽值总和 for (int j = L; j <= R; ++j) { sum += a[j]; } cout << sum << endl; } return 0; } ``` ### 📝代码解释 1. **输入花的数量和美丽值**:首先读取花的数量 `n`,然后使用 `vector` 存储每朵花的美丽值,下标从 1 开始。 2. **输入检测次数**:读取检测次数 `m`。 3. **进行检测**:对于每次检测,读取区间 `[L, R]`,然后遍历该区间内的所有元素,将它们的美丽值相加,最后输出总和。 ### ⚙️复杂度分析 - **时间复杂度**:每次查询的时间复杂度为 $O(R - L + 1)$,对于 $m$ 次查询,总的时间复杂度为 $O(m * (R - L + 1))$。 - **空间复杂度**:主要用于存储每朵花的美丽值,空间复杂度为 $O(n)$。 ### 🚀进阶优化 如果查询次数较多,可以使用前缀和数组来优化查询时间。前缀和数组可以在 $O(1)$ 的时间内计算任意区间的和。 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; // 输入花的数量 vector<int> a(n + 1); // 存储每朵花的美丽值,下标从 1 开始 vector<int> prefixSum(n + 1, 0); // 前缀和数组 for (int i = 1; i <= n; ++i) { cin >> a[i]; prefixSum[i] = prefixSum[i - 1] + a[i]; // 计算前缀和 } int m; cin >> m; // 输入检测次数 for (int i = 0; i < m; ++i) { int L, R; cin >> L >> R; // 输入每次检测的区间 [L, R] // 计算区间 [L, R] 内所有花的美丽值总和 int sum = prefixSum[R] - prefixSum[L - 1]; cout << sum << endl; } return 0; } ``` ### 🌟复杂度分析 - **时间复杂度**:预处理前缀和数组的时间复杂度为 $O(n)$,每次查询的时间复杂度为 $O(1)$,对于 $m$ 次查询,总的时间复杂度为 $O(n + m)$。 - **空间复杂度**:主要用于存储前缀和数组,空间复杂度为 $O(n)$。 ######[AI写代码神器 | 890点数解答 | 2026-05-29 20:07:25]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)382
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)271
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)275
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)262
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)400
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)362
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)290
- 补全含错误代码:Vue结合Element UI组件实现查询、新增及表格展示功能 ( | 400点数解答 | 2023-12-19 15:20:50)459
- 单线程频繁查ClickHouse致CPU飙升?这些优化方案速看!(DeepSeek | 491点数解答 | 2025-02-13 17:49:54)254
- MySQL:巧用 NOT LIKE 查询字段不包含特定字符串及注意要点 (DeepSeek | 264点数解答 | 2025-02-13 18:25:01)202
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)366
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)291