#P16732. [GKS 2019 #D] X or What?

[GKS 2019 #D] X or What?

题目描述

Steven 有一个包含 NN 个非负整数的数组。数组中的第 ii 个整数(下标从 00 开始)为 AiA_i

Steven 非常喜欢 AA异或偶 子区间。形式化地说,AA 的一个子区间是一对下标 (L,R)(L, R),表示元素 AL,AL+1,,AR1,ARA_L, A_{L+1}, \dots, A_{R-1}, A_R。该子区间的异或和为 $A_L \text{ xor } A_{L+1} \text{ xor } \dots \text{ xor } A_{R-1} \text{ xor } A_R$,其中 xor 表示按位异或。

如果一个子区间的异或和的二进制表示中,值为 11 的比特个数为偶数,则称该子区间是 异或偶 的。

Steven 希望对数组进行 QQ 次修改。第 ii 次修改将第 PiP_i 个(下标从 00 开始)元素更改为 ViV_i。Steven 想知道,在每次修改之后,AA 中元素个数最多的异或偶子区间的大小是多少?

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含两个整数 NNQQ,分别表示 Steven 数组中的元素个数和修改次数。

第二行包含 NN 个整数,其中第 ii 个整数表示 Steven 数组中的第 ii 个元素 AiA_i

随后 QQ 行,每行描述一次修改。第 ii 行包含 PiP_iViV_i。第 ii 次修改将第 PiP_i 个(下标从 00 开始)元素更改为 ViV_i

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y_1 y_2 ... y_Q,其中 xx 是测试用例编号(从 11 开始),yiy_i 是第 ii 次修改后 AA 中最大的异或偶子区间所包含的元素个数。如果不存在异或偶子区间,则输出 00

2
4 3
10 21 3 7
1 13
0 32
2 22
5 1
14 1 15 20 26
4 26
Case #1: 4 3 4
Case #2: 4

提示

在样例 11 中,N=4N = 4Q=3Q = 3

  • 第一次修改后,AA[10,13,3,7][10, 13, 3, 7]。子区间 (0,3)(0, 3) 的异或和为 $10 \text{ xor } 13 \text{ xor } 3 \text{ xor } 7 = 3$。二进制下异或和为 11211_2,其中 11 的个数为 22(偶数),因此该子区间是异或偶的。这是最大的子区间,所以答案为 44
  • 第二次修改后,AA[32,13,3,7][32, 13, 3, 7]。最大的异或偶子区间是 (0,2)(0, 2),其异或和为 32 xor 13 xor 3=4632 \text{ xor } 13 \text{ xor } 3 = 46。二进制下为 1011102101110_2
  • 第三次修改后,AA[32,13,22,7][32, 13, 22, 7]。最大的异或偶子区间再次是 (0,3)(0, 3),其异或和为 $32 \text{ xor } 13 \text{ xor } 22 \text{ xor } 7 = 60$。二进制下为 1111002111100_2

在样例 22 中,N=5N = 5Q=1Q = 1。第一次修改后,AA[14,1,15,20,26][14, 1, 15, 20, 26]。最大的异或偶子区间是 (1,4)(1, 4),其异或和为 $1 \text{ xor } 15 \text{ xor } 20 \text{ xor } 26 = 0$。二进制下为 020_2

限制条件

1T1001 \le T \le 100

0Ai<10240 \le A_i < 1024

0Pi<N0 \le P_i < N

0Vi<10240 \le V_i < 1024

测试集 1(可见)

1N1001 \le N \le 100

1Q1001 \le Q \le 100

测试集 2(隐藏)

1N1051 \le N \le 10^5

1Q1051 \le Q \le 10^5

翻译由 DeepSeek V4 Pro 完成