Type: Default 1000ms 256MiB

区间查询与数组复制

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

翻译自 CSES-1737 题。

题目描述

你的任务是维护一个数组列表,初始时该列表只有一个数组。你需要处理以下几种类型的查询:

  1. 将数组 kk 中位置 aa 的值设为 xx
  2. 计算数组 kk 中区间 [a,b][a,b] 的值的和。
  3. 创建数组 kk 的副本,并将其添加到数组列表的末尾。

输入格式

第一行包含两个整数 nnqq:分别表示数组的大小和查询的数量。

第二行包含 nn 个整数 t1,t2,,tnt_1,t_2,…,t_n:表示数组的初始内容。

接下来有 qq 行,每行描述一个查询。查询的格式有三种:

  • 1 k a x:表示将数组 kk 中位置 aa 的值设为 xx
  • 2 k a b:表示计算数组 kk 中区间 [a,b][a,b] 的值的和。
  • 3 k:表示创建数组 kk 的副本,并将其添加到列表末尾。

输出格式

对于每个类型为 2 的查询,输出该区间内的值的和。

样例

5 6
2 3 1 2 5
3 1
2 1 1 5
2 2 1 5
1 2 2 5
2 1 1 5
2 2 1 5
13
13
13
15

说明/提示

1n,q21051 \leq n,q \leq 2 \cdot 10^5

1ti,x1091 \leq t_i,x \leq 10^9

1abn1 \leq a \leq b \leq n

CSES5区间查询

Not Claimed
Status
Done
Problem
19
Open Since
2025-5-26 0:00
Deadline
2025-8-31 23:59
Extension
24 hour(s)