luogu#P9595. 「Daily OI Round 1」Xor

    ID: 13564 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>线段树洛谷原创O2优化分治位运算

「Daily OI Round 1」Xor

题目描述

给定一个长度为 nn 的序列,一共有 qq 次询问,每次询问给定正整数 xx,然后依次执行以下操作:

  • 把序列中所有数异或上 xx
  • 求长度最大的区间 [l,r][l,r]l,rl,r 是非负整数)满足区间中的每个整数在序列中出现,区间的长度定义为 rl+1r-l+1

注意,在每个询问过后序列是发生变化的。

几个需要说明的地方:

  1. “区间”指的是数的区间,比如区间 [1,3][1,3] 中的整数有 1,2,31,2,3,与序列无关。
  2. “序列”指的是修改后的序列,同时不包括之前的序列。

输入格式

第一行两个正整数 n,qn,q 表示序列长度和询问个数。

第二行 nn 个正整数 aia_i 表示一开始的序列。

接下来 qq 行,每行一个正整数 xx 表示一个询问。

输出格式

输出 qq 行,一行一个整数表示每个询问的答案。

5 2
1 2 3 4 5
1
1

4
5
10 10
5 9 8 3 5 7 10 19 5 24
10
56
19
14
18
53
52
57
96
1000
2
2
2
4
2
3
3
2
2
2

提示

样例解释

对于第一组样例,序列初始是 {1,2,3,4,5}\{1,2,3,4,5\},第一次询问给定 x=1x=1,则异或后的序列为 {0,3,2,5,4}\{0,3,2,5,4\}。区间 [2,5][2,5] 中的每个整数 2,3,4,52,3,4,5 都在这个序列中,这是满足条件的最大区间,所以答案为 52+1=45-2+1=4

数据范围

本题开启捆绑测试。

Subtask\text{Subtask} 分值 n,qn,q\leq aia_i\leq xx\leq
00 1010 10310^3 10310^3 10310^3
11 2020 5×1055\times10^5
22 1010 5×1055\times10^5
33 6060 5×1055\times10^5

对于全部数据,保证:1n,q,ai,x5×1051\leq n,q,a_i,x\leq 5\times10^5