P5586 [P5350] 序列 (加强版)

题目背景

本题为 [P5350](https://www.luogu.org/problem/P5350) 的加强版。 本题很良心,不卡空间!

题目描述

有一个序列 $a_n$ 和 $q$ 次操作。 - `1 l r` 求区间 $[l,r]$ 的和 - `2 l r k` 区间 $[l,r]$ 赋值为 $k$ - `3 l r k` 区间 $[l,r]$ 加上 $k$ - `4 l1 r1 l1 r2` 将区间 $[l_1,r_1]$ 复制到 $[l_2,r_2]$ 处 - `5 l1 r1 l2 r2` 将区间 $[l_1,r_1]$ 与 $[l_2,r_2]$ 交换 - `6 l r` 翻转区间 $[l,r]$ 最后还要输出整个序列,所有输出都要对 $10^9+7$ 取模。 为了卡掉某些乱搞做法,**本题强制在线**。 每次操作中,除了输入第一个数,其它所有数都需要异或 $\text{last}$ 才是实际的操作。 $\text{last}$ 为上一次 $1$ 操作的答案 $\pmod{10^9 +7}$,定义初始 $\text{last} = 0$。

输入格式

输出格式

说明/提示

【数据范围】 $1\le n,q \le 3\times 10^5$ $0\le a_i,k \le 10^9$ 对于 $4,5$ 操作,保证 $r_1-l_1 = r_2-l_2$ 且 $[l_1,r_1] \cap [l_2,r_2] = \varnothing$ **不保证数据随机** 且 **没有梯度** 想交 ODT 的就算了吧!