CSES 1737 - Range Queries and Copies
1.0s 512M你的任務是維護一個陣列的清單,一開始清單裡只有一個陣列。你需要處理以下幾種操作:
-
把第 \(k\) 個陣列中位置 \(a\) 的數值設成 \(x\)。
-
計算第 \(k\) 個陣列在區間 \([a,b]\) 內數值的總和。
-
複製第 \(k\) 個陣列,並把這份副本加到清單的尾端。
輸入格式
第一行有兩個整數 \(n\) 與 \(q\):陣列的大小與操作的數量。
下一行有 \(n\) 個整數 \(t_1,t_2,\ldots,t_n\):陣列一開始的內容。
最後有 \(q\) 行描述這些操作。每行的格式是以下其中一種:1 k a x、2 k a b 或 3 k。
輸出格式
輸出每個求和操作的答案。
範例輸入 1
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
範例輸出 1
13
13
13
15
限制
- \(1 \le n, q \le 2 \cdot 10^5\)
- \(1 \le t_i, x \le 10^9\)
- \(1 \le a \le b \le n\)
題目來源
CSES - Range Queries and Copies
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入