酷代码 AI
菜单
服务商

C++ 实现区域打扫干净度计算程序

以下是一个用 C++ 实现的解决方案,用于处理你所描述的问题。这个程序的主要功能是根据输入的区域数量和打扫次数,以及每次打扫的范围和干净度增加的值,来计算最终每个区域的干净度。 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, q; // 读取区域的数 n 和打扫次数 q cin >> n >> q; // 初始化每个区域的干净度为 0 vector<int> cleanliness(n + 1, 0); for (int i = 0; i < q; ++i) { int Li, Ri, Xi; // 读取每次打扫的范围和干净度增加的值 cin >> Li >> Ri >> Xi; // 在指定范围内增加干净度 for (int j = Li; j <= Ri; ++j) { cleanliness[j] += Xi; } } // 输出每个区域的最终干净度,从第 1 个区域开始 for (int i = 1; i <= n; ++i) { cout << cleanliness[i] << (i == n ? "\n" : " "); } return 0; } ``` ### 代码说明: 1. **输入处理**:首先读取两个整数 `n` 和 `q`,分别表示区域的数量和打扫次数。 2. **干净度数组**:使用 `vector<int> cleanliness(n + 1, 0)` 初始化一个长度为 `n + 1` 的数组,用于存储每个区域的干净度,初始值都为 0。数组下标从 1 开始,所以长度设为 `n + 1`。 3. **打扫操作**:通过一个循环读取 `q` 次打扫信息,每次读取三个整数 `Li`、`Ri` 和 `Xi`,表示打扫的范围和干净度增加的值。然后在 `[Li, Ri]` 范围内的每个区域的干净度都增加 `Xi`。 4. **输出结果**:遍历干净度数组,输出每个区域的最终干净度,区域之间用空格分隔,最后一个区域后面换行。 ######[AI问答 | 520点数解答 | 2026-02-27 19:37:43]

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