T324421 英杰之诗

题目背景

![题目头图](https://cdn.luogu.com.cn/upload/image_hosting/cp25eus5.png) $$ 你是英杰\ 你的灵魂在天空中飞翔 $$ $$ 你用滑翔翼\ 轻轻地拍打着\ 那片蓝色的天空 $$ $$ 风吹来\ 你像一只快艇\ 从远方驶来 $$ $$ 宝剑击打着强敌\ 溅起一滴滴热血\ 飘过了山岗\ 飘过了河流 $$

题目描述

英杰们的诗篇可以近似为一个长度为 $n$ 的序列 $a$。四英杰让你进行 $4$ 种操作共 $m$ 次。 达尔克尔(火之英杰)说:```1 l r x``` 代表将序列上 $l$ 到 $r$ 的所有数变为 $x$。 力巴尔(风之英杰)说:```2 l r x``` 代表将序列上 $l$ 到 $r$ 的所有数异或上 $x$。 米法(水之英杰)说:```3 l r x``` 代表将序列上 $l$ 到 $r$ 的所有数变为 $a_{i} \times 2^{x} \bmod 1024$。 乌尔波扎(雷之英杰)说:```4 l r``` 代表将序列上 $l$ 到 $r$ 的所有数的二进制表示上 $1$ 的个数求和。 你能维护英杰们的诗篇吗? **简化题意** 维护一个长为 $ n $ 的序列,支持区间赋值、区间异或、区间位移再对 1024 取模、区间二进制表示上 1 的个数求和四种操作共 $ m $ 次。

输入格式

第一行两个正整数 $n,m$,代表序列长度与操作次数。 接下来一行 $n$ 个整数,第 $i$ 个代表 $a_{i}$。 接下来 $m$ 行,每行 3 或 4 个整数,代表四种操作中的一种。

输出格式

若干行,每行一个整数,代表每次询问操作的答案。

说明/提示

**样例解释** 对于样例 $1$: |操作次数|$a_{1}$|$a_{2}$|$a_{3}$|$a_{4}$|$a_{5}$|$a_{6}$|$a_{7}$|$a_{8}$|$a_{9}$|$a_{10}$|答案| |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |0|1|2|3|4|5|6|7|8|9|10|-| |1|1|2|3|3|3|3|7|8|9|10|-| |2|1|2|3|3|3|3|2|13|12|10|-| |3|1|2|3|3|96|96|64|416|12|10|-| |4|1|1|2|2|2|2|1|3|2|-|16| |5|-|-|-|2|2|2|1|3|-|-|10| --- **数据范围** 对于 $ 100\% $ 的数据,保证: * $1 \le n \le 2 \times 10^{6}$,$1 \le m \le 5 \times 10^{5}$,$0 \le a_{i} < 1024$,操作编号只能为 $ 1 \sim 4 $; * 对于 1 和 2 操作,$ 1 \le l \le r \le n$,$ 0 \le x < 1024 $; * 对于 3 操作,$1 \le l \le r \le n$,$ 1 \le x \le 9 $; * 对于 4 操作,$1 \le l \le r \le n$。 **提示:本题采用捆绑计分。** | 子任务编号 | 分值 | 约束 | 时限 | |:-:|:-:|:-:|:-:| | 1 | 5 | $n,m\le 10^4$ | 1s | | 2 | 25 | $n,m\le 10^5$ | 1s | | 3 | 20 | 没有操作 1 | 5s | | 4 | 50 | 无 | 5s | **提示** * 本题输入输出量较大,请选择合适的输入输出方式。 --- **题目来源** | 项目 | 人员 | |:-:|:-:| | idea | Kevin0501 | | data | Kevin0501 | | check | lyhqwq | | solution | Kevin0501 | | std | Kevin0501 |