区间增量求最大值:差分数组高效解法C++实现
根据您的需求,这是一个典型的区间增量更新后求最大值的问题。可以使用差分数组或线段树解决。这里提供一种简单高效的差分数组解法。 ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, q; cin >> n >> q; vector<long long> diff(n + 2, 0); // 差分数组,多开两个位置防止越界 for (int i = 0; i < q; i++) { int L, R; long long X; cin >> L >> R >> X; // 差分操作:左端点加X,右端点后一个位置减X diff[L] += X; diff[R + 1] -= X; } long long current = 0; long long maxClean = 0; // 前缀和还原每个区域的干净度 for (int i = 1; i <= n; i++) { current += diff[i]; maxClean = max(maxClean, current); } cout << maxClean << endl; return 0; } ``` 算法说明: - 差分数组`diff`可以高效记录区间增量。 - 每次打扫在`diff[L]`加X,在`diff[R+1]`减X。 - 最后遍历一次,累加差分值得到每个区域的最终干净度,同时记录最大值。 - 时间复杂度O(n+q),空间复杂度O(n)。 ######[AI问答 | 341点数解答 | 2026-08-02 15:41:56]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)430
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)317
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)317
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)306
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)550
- 巴黎奥运:中国女排淘汰赛对决土耳其,朱婷成致胜关键!(字节豆包 | 448点数解答 | 2024-08-06 15:59:48)235
- 地下水及地基土腐蚀性分析:从代码优化到逻辑完善的全面攻略(DeepSeek | 498点数解答 | 2025-06-08 21:49:49)266
- 礼盒多级排序:总价→最贵→最便宜→编号的 Python 实现与详解(阿里通义 | 1000点数解答 | 2026-03-16 12:13:21)92
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)85
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)467
- C++实现:输入整数英文单词算乘积,输出数字与英文结果,可多次计算!(GPT | 2268点数解答 | 2024-05-24 01:55:27)437
- C语言巧解:计算整数区间内最遥远素数差值(阿里通义 | 428点数解答 | 2024-11-22 14:53:33)217