CF242E XOR on Segment
题目描述
你得到了一个序列 $a$,其中包含 $n$ 个元素 $a_1,a_2,\cdots,a_n$。
你需要执行 $m$ 个操作,分为两种:
- `1 l r`:求 $a_l\sim a_r$ 的和。
- `2 l r x`:将 $a_l\sim a_r$ 异或上 $x$。
输入格式
第一行,一个正整数 $n$,表示序列长度。
第二行,$n$ 个非负整数 $a_1,a_2,\cdots,a_n$。
第三行,一个正整数 $m$,表示操作个数。
接下来 $m$ 行,每行 $3$ 或 $4$ 个正整数,表示一个操作。
输出格式
对每个操作 $1$,输出一行一个整数表示答案。
说明/提示
$1\le n\le 10^5$
$1\le m\le 5\times 10^4$
$0\le a_i\le 10^6$
$1\le x \le 10^6$
- 在 `C++` 和 `Java` 中,异或符号为 `^`,在 `Pascal` 中为 `xor`。