1634_树状数组3:区间修改,区间查询

2022-5-16 18:17| 发布者: Hocassian| 查看: 49| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-8950463088000-Problem List-采集的数据-后羿采集器.html

Pro.ID

1634

Title

树状数组 3 :区间修改,区间查询

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1634

AC

1

Submit

26

Ratio

3.85%

时间&空间限制

  • Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 262144/262144 K (Java/Others)
  • 描述

    这是一道模板题。

    给定数列 a[1], a[2], …, a[n],你需要依次进行 q 个操作,操作有两类:

    • 1  l  r  x:给定 l, r ,对于所有 i ∈ [l, r] ,将 a[i] 加上 x(换言之,将 l], a[l+1], …, a[r] 分别加上 x );

    • 2  l  r:给定 l, r ,求 的值(换言之,求 a[l] + a[l+1] + ⋯ + a[r] 的值)

    输入

    第一行包含2个正整数 n, q,表示数列长度和询问个数。保证 1 ≤ n, q ≤ 106

    第二行 n 个整数 a[1], a[2],…, a[n],表示初始数列。保证 | a[i] | ≤ 106

    接下来 q 行,每行一个操作,为以下两种之一:

    • 1  l  r  x:对于所有 i ∈ [l, r] ,将 a[i] 加上 x

    • 2  l  r:输出  的值。

    保证 1 ≤ lrn , ∣x∣≤ 106

    输出

    Description

    这是一道模板题。

    给定数列 a[1], a[2], …, a[n],你需要依次进行 q 个操作,操作有两类:

    • 1  l  r  x:给定 l, r ,对于所有 i ∈ [l, r] ,将 a[i] 加上 x(换言之,将 l], a[l+1], …, a[r] 分别加上 x );

    • 2  l  r:给定 l, r ,求 的值(换言之,求 a[l] + a[l+1] + ⋯ + a[r] 的值)

    Input

    第一行包含2个正整数 n, q,表示数列长度和询问个数。保证 1 ≤ n, q ≤ 106

    第二行 n 个整数 a[1], a[2],…, a[n],表示初始数列。保证 | a[i] | ≤ 106

    接下来 q 行,每行一个操作,为以下两种之一:

    • 1  l  r  x:对于所有 i ∈ [l, r] ,将 a[i] 加上 x

    • 2  l  r:输出  的值。

    保证 1 ≤ lrn , ∣x∣≤ 106

    Output

    对于每个 2  l  r 操作,输出一行,每行有一个整数,表示所求的结果。

    Sample Input

    5 10
    2 6 6 1 1
    2 1 4
    1 2 5 10
    2 1 3
    2 2 3
    1 2 2 8
    1 2 3 7
    1 4 4 10
    2 1 2
    1 4 5 6
    2 3 4

    Sample Output

    15
    34
    32
    33
    50

    样例输入

    5 10
    2 6 6 1 1
    2 1 4
    1 2 5 10
    2 1 3
    2 2 3
    1 2 2 8
    1 2 3 7
    1 4 4 10
    2 1 2
    1 4 5 6
    2 3 4

    样例输出

    15
    34
    32
    33
    50

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部