大佬求助!
  • 板块题目总版
  • 楼主zhijinyu
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/6 11:33
  • 上次更新2023/10/27 08:33:06
查看原帖
大佬求助!
587598
zhijinyu楼主2022/10/6 11:33

维护一个由n个非负整数构成的序列a[1],a[2],a[3]...a[n],支持三种操作: 1.给定区间[l,r],将对应区间内的数异或上x 2.给定区间[l,r],将对应区间内的数从小到大排序 3.给定区间[l,r],求区间内的数的异或和

1≤n,m≤100000

0≤a[i],x<108

样例解释:

原序列为1 4 2 8 3

将区间[1,3]排序,得到[1 2 4] 8 3

将区间[2,4]与5按位取异或,2 xor 5 = 7,4 xor 5 = 1,8 xor 5 = 13,得到1 [7 1 13] 3

查询区间[1,2]的异或和,[1 7] 1 13 3 ,1 xor 7 = 6

输入 第一行n,m两个整数 第二行n个整数a[i],表示原序列 接下来m行,每行三个整数op,l,r(op=2,3)或四个整数op,l,r,x(op=1)表示对应的操作

输出 对每个操作3,输出一行,表示对应的答案

输入样例

5 3

1 4 2 8 3

2 1 3

1 2 4 5

3 1 2

输出样例

6

2022/10/6 11:33
加载中...