链接:https://ac.nowcoder.com/acm/contest/6046/C
时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
在心理疏导室中有一种奇特的疏导工具,叫做红球。红球被提前分为了许多正方形小方格。
每当有人来找ATB做心理疏导时,ATB就会让他去先玩红球,然后通过红球小格方的高度来判断一个人的压力程度的高低
具体地讲,ATB会让该人对于一个序列执行以下操作
- 区间求和,即输入
l,r
,输出 ∑ i = l r a i \sum_{i=l}^{r}a_i ∑i=lrai - 区间异或,即输入
l,r,k
,对于 l ≤ i ≤ r l ≤ i ≤ r l≤i≤r,将 x i x_i xi变为 x i ⊕ k x_i⊕k xi⊕k
可是ATB天天算计那么多答案,已经对这份工作产生了厌烦,所以请你帮帮他,对于一组给定的数据,输出对应的答案
ATB会将你感谢到爆
输入描述:
第一行两个整数n和m,表示数列长度和询问次数
第二行有 n n n个整数,表示这个数列的初始数值
接下来有 m m m行,形如 1 l r
或者 2 l r k
分别表示查询 ∑ i = l r a i \sum_{i=l}^{r}a_i ∑i=lr</