酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

花园浇水问题:C++ 实现计算指定区间花的浇水次数之和

以下是使用 C++ 实现的代码: ```cpp #include <iostream> #include <vector> // 函数用于计算指定区间内花被浇水次数之和 int calculateWateringSum(const std::vector<int>& wateringCounts, int b, int y) { int sum = 0; // 遍历指定区间,累加每朵花的浇水次数 for (int i = b - 1; i < y; ++i) { sum += wateringCounts[i]; } return sum; } int main() { int n, q; // 输入花的数量和浇水轮数 std::cin >> n >> q; // 用于存储每朵花的浇水次数,初始化为 0 std::vector<int> wateringCounts(n, 0); for (int i = 0; i < q; ++i) { int L, R, x; // 输入每轮浇水的区间和浇水次数 std::cin >> L >> R >> x; // 更新指定区间内每朵花的浇水次数 for (int j = L - 1; j < R; ++j) { wateringCounts[j] += x; } } int b, y; // 输入最后询问的区间 std::cin >> b >> y; // 计算并输出指定区间内花被浇水次数之和 std::cout << calculateWateringSum(wateringCounts, b, y) << std::endl; return 0; } ``` ### 代码说明: 1. **输入处理**:首先读取花的数量 `n` 和浇水轮数 `q`。然后使用 `std::vector<int> wateringCounts(n, 0)` 创建一个长度为 `n` 的向量,初始值都为 0,用于存储每朵花的浇水次数。 2. **浇水操作**:通过循环 `q` 次,每次读取浇水的区间 `L` 到 `R` 以及浇水的次数 `x`,并更新 `wateringCounts` 向量中对应区间的元素值。 3. **询问处理**:读取最后询问的区间 `b` 到 `y`,调用 `calculateWateringSum` 函数计算该区间内花被浇水次数之和,并输出结果。 ######[AI问答 | 552点数解答 | 2026-04-19 21:56:40]

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