#12764. 雨季地貌重建
雨季地貌重建
雨季地貌重建
题目背景
在一条长度为 n 的土地上,最初每一块地面的高度都为 0。
进入雨季后,这片土地经历了大量不规则的降雨过程。雨水可能堆积泥沙抬高地面,也可能冲刷土地降低高度。
为了研究地貌变化,科研人员记录了每一次降雨事件。
你的任务是在所有降雨结束后,计算每一块土地的最终高度。
题目描述
每一次降雨事件由三个整数 l, r, v 描述:
从第 l 块土地到第 r 块土地(包含两端),
这一整段区域的高度都会 整体增加 v 个单位。
如果 v 为负数,则表示该区域被雨水冲刷,高度整体降低。
所有降雨事件 按照时间顺序依次发生,不同事件可能作用在同一片土地上并产生叠加效果。
请计算所有降雨结束后,每一块土地的最终高度。
输入格式
第一行输入两个整数:
n m
n表示土地的长度m表示降雨事件数量
接下来 m 行,每行包含三个整数:
l r v
表示一次降雨事件。
输出格式
输出一行 n 个整数:
h1 h2 ... hn
其中 hi 表示第 i 块土地在雨季结束后的最终高度。
相邻数字之间用一个空格分隔。
数据范围
1 ≤ n, m ≤ 200000
1 ≤ l ≤ r ≤ n
-10^9 ≤ v ≤ 10^9
所有中间计算结果可能超过 32 位整数范围,请使用 long long。
样例输入
6 3
2 5 3
1 3 2
4 6 1
样例输出
2 5 5 4 4 1
样例说明
初始状态:
0 0 0 0 0 0
第一次降雨 (2,5,3):
0 3 3 3 3 0
第二次降雨 (1,3,2):
2 5 5 3 3 0
第三次降雨 (4,6,1):
2 5 5 4 4 1
最终得到:
2 5 5 4 4 1
提示
降雨会影响一个连续区间,如果逐个修改每一块土地,时间复杂度可能达到 O(n × m),在本题数据范围下会超时。
可以思考:
一场雨从哪里开始
一场雨在哪里结束
也许世界真正变化的地方,并不是每一块土地,而只是 雨开始的地方和雨结束的地方。