#1152. 序列变换
序列变换
序列变换(runes)
题目描述
Y 同学在探索遗迹时发现了一行共 个神秘的符文,每个符文都蕴含着一定的能量值。我们将这些符文从左到右依次编号为 ,第 个符文的初始能量值为 。
这行符文的结构具有特殊的分治特性,Y 同学可以通过施加咒语来改变符文的排列或能量分布。总共有 次操作,操作分为以下四类:
- 能量强化:给定位置 和能量值 ,将第 个符文的能量值修改为 。
- 镜像翻转:给定参数 ,将整个符文序列划分为 个连续的子块,每个子块的长度均为 。对于每一个子块,将其内部的符文顺序进行完全反转。
- 结构互换:给定参数 ,将整个符文序列划分为 个连续的子块,每个子块的长度均为 。对于每一个子块,交换其左半部分(长度为 )与右半部分(长度为 )的符文位置。
- 能量感应:给定闭区间 ,计算并输出该区间内所有符文能量值的总和。
请你帮助 Y 同学计算出每次“能量感应”操作的结果。
输入格式
第一行包含两个整数 和 ,分别表示序列长度的对数和操作的总次数。
第二行包含 个整数 ,表示各个符文的初始能量值。
接下来的 行,每行描述一个操作:
1 x k:执行第 1 类操作,将 修改为 。2 k:执行第 2 类操作,参数为 。3 k:执行第 3 类操作,参数为 。4 l r:执行第 4 类操作,查询区间 的能量总和。
输出格式
对于每个第 4 类操作,输出一行一个整数,代表查询的区间能量总和。
样例
样例输入 #1
2 3
7 4 9 9
1 2 8
3 1
4 2 4
样例输出 #1
24
样例输入 #2
3 8
7 0 8 8 7 1 5 2
4 3 7
2 1
3 2
4 1 6
2 3
1 5 16
4 8 8
3 0
样例输出 #2
29
22
1
数据范围与约定
对于 的数据,保证 ,,。 操作参数满足 ,(第 2 类),(第 3 类),。
| 测试点编号 | 分值 | 特殊性质 | ||
|---|---|---|---|---|
| 无 | ||||
| 特殊性质 A | ||||
| 特殊性质 B | ||||
| 无 | ||||
- 特殊性质 A:保证不存在第 2 类(镜像翻转)和第 3 类(结构互换)操作。
- 特殊性质 B:保证不存在第 1 类(能量强化)操作。
统计
相关
在下列比赛中: