199. 【应-46-2·难】差分批量加

中等 Python 2s 256MB
通过 0/0

📋 题目描述
初始有一个长度为 N 的数组,所有元素为 0。执行 Q 次区间加操作:每次给出 l r v,表示对 a[l..r] 中的每个元素都加 v(含两端,1 起)。所有操作完成后,输出最终的数组(一行 N 个整数,空格分隔)。请使用差分数组实现 O(N+Q) 算法。
📥 输入描述
第一行两个整数 N Q(1<=N<=10^5, 0<=Q<=10^5)。 接下来 Q 行,每行三个整数 l r v(1<=l<=r<=N,-10^9<=v<=10^9)。
📤 输出描述
一行 N 个整数,表示最终数组(空格分隔)。
输入样例
5
2
1
3
1
2
5
2
输出样例
1 3 3 2 2
提示:差分:diff[l] += v;diff[r+1] -= v。 最后求 diff 的前缀和即得最终数组。注意申请 diff 长度 N+2 防越界。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!