797. 差分

摘要
Title: 797. 差分
Tag: 差分
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

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
    20
    def 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= " ")
使用搜索:谷歌必应百度