6191. 翻转与求和 (Reversals and Sums)
时间限制:1000 MS 内存限制:512 MB
题目描述
## 题目描述 给定一个含有 $n$ 个整数的数组,你需要处理以下两类操作: 1. 翻转一个子数组。 2. 计算一个子数组中所有元素的和。 ## 输入格式 第一行包含两个整数 $n$ 和 $m$,分别表示数组的大小和操作次数。数组元素从左到右编号为 $1, 2, \dots, n$。 第二行包含 $n$ 个整数 $x\_1, x\_2, \dots, x\_n$,表示数组的初始内容。 接下来 $m$ 行描述操作。每行包含三个整数 $t, a$ 和 $b$: * 若 $t = 1$,表示将区间从位置 $a$ 到 $b$ 的子数组进行翻转。 * 若 $t = 2$,表示计算区间从位置 $a$ 到 $b$ 的子数组元素和。 ## 输出格式 对于每个 $t = 2$ 的操作,输出一行对应的求和结果。 ## 输入输出样例 ### 输入 #1 ``` 8 3 2 1 3 4 5 3 4 4 2 2 4 1 3 6 2 2 4 ``` ### 输出 #1 ``` 8 9 ``` ## 说明/提示 ### 数据规模与约定 * $1 \le n \le 2 \cdot 10^5$ * $1 \le m \le 10^5$ * $0 \le x\_i \le 10^9$ * $1 \le a \le b \le n$