#CSES2074. 反转与求和

    ID: 359 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数据结构平衡树SplayTreap区间反转区间求和CSES结构体

反转与求和

题目背景

翻译自 CSES-2074 题。

题目描述

给定一个包含 nn 个整数的数组,您需要处理以下操作:

  1. 反转一个子数组
  2. 计算一个子数组中所有值的和

输入格式

第一行输入两个整数 nnmm,分别表示数组的大小和操作的次数。数组中的元素编号为 1,2,,n1, 2, \ldots, n

第二行输入 nn 个整数 x1,x2,,xnx_1, x_2, \ldots, x_n,表示数组的内容。

接下来的 mm 行描述了每次操作。每行包含三个整数 ttaabb。如果 t=1t = 1,则表示需要反转从位置 aa 到位置 bb(包括 aabb)的子数组;如果 t=2t = 2,则表示需要计算从位置 aa 到位置 bb(包括 aabb)的子数组的值的和。

输出格式

对于每个 t=2t = 2 的操作,输出该操作的结果,即子数组的和。

样例

8 3
2 1 3 4 5 3 4 4
2 2 4
1 3 6
2 2 4
8
9

数据范围

  • 1n2×1051 \le n \le 2 \times 10^5
  • 1m1051 \le m \le 10^5
  • 0xi1090 \le x_i \le 10^9
  • 1abn1 \le a \le b \le n