AtCoder Beginner Contest 453 G - Copy Query 完整题解
一、题目完整信息
1. 题目大意
我们有N 个数组,每个数组长度都是M,一开始所有数组全部元素都是 0。
接下来有Q 次操作,一共三种操作:
1 X Y:把数组 X完全复制成数组 Y(X 变成和 Y 一模一样)。
2 X Y Z:把数组 X 的第 Y 个位置修改成 Z。
3 X L R:询问数组 X 中下标 L 到 R 的区间总和,输出答案。
数据范围很大: N, M, Q 都可以到 2e5 级别。 所以暴力开数组、暴力复制一定会超时。
2. 样例输入
2 3 6 2 1 2 10 3 1 1 3 1 2 1 2 2 3 20 3 1 1 3 3 2 1 3
3. 样例输出
10 10 30
4. 样例解释
一开始数组 1、2 都是 [0,0,0]。
操作 2 1 2 10:数组 1 变成 [0,10,0]。
查询 1 号数组 1~3 和:0+10+0 = 10。
把数组 2 复制成数组 1 → 数组 2 现在也是 [0,10,0]。
修改数组 2 第 3 位为 20 → 数组 2:[0,10,20]。
再查数组 1:没变,还是 10。
查数组 2:0+10+20