U529865 异或
题目背景
题目描述
给你一个长度为 $n$ 的序列 $a$,
下面有两种操作:
1. 将区间 $[l,r]$ 之间的数(包括 $l、r$)异或 $x$。
1. 求 $[l,r]$ 之间数的和,并对 $10^9+7$ 取模。
你需要进行 $q$ 次操作。
输入格式
第一行一个整数 $n$,代表序列长度。
第二行 $n$ 个整数,表示序列 $a$。
第三行一个整数 $q$,代表操作次数。
第 $[4,q+3]$ 行,每行包含 $[3,4]$ 个整数,表示一个操作。
1. `1 l r x`:将区间 $[l,r]$ 之间的数(包括 $l、r$)异或 $x$。
2. `2 l r`:求 $[l,r]$ 之间数的和,并对 $10^9+7$ 取模。
输出格式
输出包含若干行整数,即为所有操作 2 的结果。
说明/提示
对于 $40\%$ 的数据:$1 \le n,q \le 5000$。
对于 $100\%$ 的数据:$1 \le n,q\le 5 \times 10^5,0 \le a_i,x \le 10^{18}$。