797. 差分
摘要
Title: 797. 差分
Tag: 差分
Memory Limit: 64 MB
Time Limit: 1000 ms
Powered by:NEFU AB-IN
797. 差分
-
题意
输入一个长度为 n 的整数序列。
接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。
请你输出进行完所有操作后的序列。 -
思路
差分更新写法,将差分操作列出一个函数,初始化时直接调用函数即可
-
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20def insert(l, r, c):
b[l] += c
b[r + 1] -= c
N = int(1e5 + 10)
a, b = [0] * N, [0] * N
n, m = map(int, input().split())
a[1:] = list(map(int, input().split()))
for i in range(1, n + 1): #差分数组初始化
insert(i, i, a[i])
for i in range(m):
l, r, c = map(int, input().split())
insert(l, r, c)
for i in range(1, n + 1):
b[i] += b[i - 1]
print(b[i], end= " ")