AT_arc030_4.[ARC030D] グラフではない

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个长度为 NN 的数列 X={x1,x2,…,xN}X = \{x_1, x_2, \ldots, x_N\}。现在要对这个数列进行 QQ 次操作。操作有三种类型,具体如下:

  • 1 a b v —— 将数列 XX 的区间 [a,b][a, b] 上的每个元素都加上 vv。
  • 2 a b c d —— 将数列 XX 的区间 [a,b][a, b] 的值替换为当前区间 [c,d][c, d] 的值。保证 b−a=d−cb-a = d-c。更严格地说,操作后得到的新数列 X′X' 满足 Xa′=XcX'_{a} = X_c,Xa+1′=Xc+1X'_{a+1} = X_{c+1},……,Xb′=XdX'_{b} = X_{d}。对于不在 [a,b][a, b] 区间内的 jj,有 Xj′=XjX'_j = X_j。
  • 3 a b —— 查询数列 XX 的区间 [a,b][a, b] 上所有元素的和。

请你编写程序,依次处理这些操作。

输入格式

输入通过标准输入给出,格式如下:

NN QQ x1x_1 x2x_2 … xNx_N Query1Query_1 Query2Query_2 : QueryQQuery_Q

  • 第 11 行包含两个整数,分别表示数列 XX 的长度 N (1≤N≤2×105)N\ (1 \leq N \leq 2 \times 10^5) 和操作次数 Q (1≤Q≤2×105)Q\ (1 \leq Q \leq 2 \times 10^5)。
  • 第 22 行包含 NN 个整数,表示数列 XX 的每个元素 xi (−106≤xi≤106)x_i\ (-10^6 \leq x_i \leq 10^6),以空格分隔。
  • 接下来的 QQ 行,每行一个操作,格式为 1 a b v、2 a b c d 或 3 a b。其中 −106≤v≤106-10^6 \leq v \leq 10^6,1≤a≤b≤N1 \leq a \leq b \leq N,1≤c≤d≤N1 \leq c \leq d \leq N,并保证 b−a=d−cb-a = d-c。

输出格式

对于每个 3 a b 形式的查询操作,按输入顺序输出答案。每个答案占一行。

输入输出样例

  • 输入#1

    5 5
    1 2 3 4 5
    3 1 5
    1 1 3 1
    3 1 3
    2 1 3 2 4
    3 1 5

    输出#1

    15
    9
    20
  • 输入#2

    10 30
    -5 -5 -2 -1 2 -2 0 -4 2 5
    2 9 10 9 10
    2 3 5 2 4
    1 2 10 -1
    2 1 7 1 7
    3 1 4
    2 1 6 2 7
    2 5 8 6 9
    3 4 8
    3 1 10
    3 9 9
    1 3 8 -1
    2 4 9 1 6
    3 2 7
    1 9 10 -4
    1 6 9 -5
    1 4 6 -7
    3 2 5
    2 10 10 7 7
    1 3 4 -10
    3 4 9
    3 8 9
    2 6 7 8 9
    3 3 5
    3 3 9
    1 2 10 -10
    2 4 6 4 6
    2 4 9 5 10
    1 2 6 7
    3 7 8
    1 3 6 3

    输出#2

    -20
    -8
    -18
    1
    -29
    -36
    -78
    -18
    -50
    -86
    -38

说明/提示

样例解释 1

  • 第 11 个操作是查询 [1,5][1,5] 区间的和,1+2+3+4+5=151+2+3+4+5=15,输出 1515。
  • 第 22 个操作是将 [1,3][1,3] 区间的每个元素加 11,操作后 X={2,3,4,4,5}X = \{2,3,4,4,5\}。
  • 第 33 个操作是查询 [1,3][1,3] 区间的和,2+3+4=92+3+4=9,输出 99。
  • 第 44 个操作是将 [2,4][2,4] 区间的值替换为 [1,3][1,3] 区间的值,操作后 X={3,4,4,4,5}X = \{3,4,4,4,5\}。
  • 第 55 个操作是查询 [1,5][1,5] 区间的和,3+4+4+4+5=203+4+4+4+5=20,输出 2020。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页