酷代码 AI
菜单
服务商

花园里一共有n(n<100)朵花,从1到n排成一行。而朵朵打算让大家一共浇q轮水,每轮浇水的时候,朵朵会告诉大家从第L朵花开始到第R朵花为止,中间所有的花都浇x次水包括两端。 最后朵朵有一个问题,想知道一个区间的每朵花被浇水次数之和。 输入: 第一行两个数n和q代表花的数量,和浇水轮数。 接下来q行,每行三个数L,R和x,表示每轮浇水的区间以及本轮浇水的次数。 最后一行为两个数b,y,即最后询问的区间。 输出: 输出第b朵花到第y朵花的被浇水次数之和。 输入样例: 5 3 1 3 1 2 4 2 3 5 3 2 4 输出样例: 14 使用c++语言

```cpp #include <iostream> using namespace std; const int MAXN = 100; // 用于记录每朵花被浇水的次数 int waterCount[MAXN + 1] = {0}; int main() { int n, q; cin >> n >> q; // 处理每一轮浇水 for (int i = 0; i < q; i++) { int L, R, x; cin >> L >> R >> x; // 对指定区间内的花增加浇水次数 for (int j = L; j <= R; j++) { waterCount[j] += x; } } int b, y; cin >> b >> y; int sum = 0; // 计算指定区间内花被浇水次数之和 for (int i = b; i <= y; i++) { sum += waterCount[i]; } cout << sum << endl; return 0; } ``` 代码解释 1. 数组定义:定义了一个大小为 `MAXN + 1` 的数组 `waterCount`,用来记录每朵花被浇水的次数,初始值都为 0。 2. 输入处理:首先输入花的数量 `n` 和浇水轮数 `q`。 3. 浇水操作:通过循环 `q` 次,每次读取浇水的区间 `[L, R]` 以及浇水次数 `x`,然后在该区间内的每朵花的浇水次数上加上 `x`。 4. 询问处理:读取询问的区间 `[b, y]`,然后遍历该区间,将每朵花的浇水次数累加起来得到总和。 5. 输出结果:输出询问区间内花被浇水的总次数。 [2026-02-08 19:39:01 | AI问答 | 422点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多