luogu#P11398. 众数

众数

题目描述

你有 nn 个数对 (a1,b1),,(an,bn)(a_1,b_1),\ldots,(a_n,b_n)

定义下标 i(1in)i(1\le i\le n) 的权值为将 a1a_1b1b_1a2a_2b2b_2,...,aia_ibib_i 拼接在一起后形成的数组的最大众数(特别地,若所有数出现次数相同则为最大数)乘以 aia_i

接下来你有 mm 个操作,分两种:

  • 1 x y,将 axa_x 增加 yy保证 yy 非负。
  • 2 q,求最小的正整数 kk 使得下标 nk+1nn-k+1 \sim n 的权值异或和为 qq

2 操作保证有解,且所有答案之和(记为 k\sum k)不超过 5×1075\times 10^7

输入格式

输入的第一行有三个正整数 T,n,mT,n,m,分别表示测试点编号(样例为 00,Hack 数据是 2610026\sim 100 之间的自然数)、数对个数和操作个数。

第二行有 2n2n 个正整数 a1,b1,a2,b2,,an,bna_1,b_1,a_2,b_2,\ldots,a_n,b_n,其中第 2i12i-1 和第 2i2i 个数分别表示第 ii 个数对的 ai,bia_i,b_i

之后有 mm 行,每行有一个操作,格式见题目描述。

输出格式

对于每个 2 操作,输出一行一个正整数表示答案。

0 4 5
2 1 3 3 1 1 1 2
2 0
1 4 6
2 6
1 3 8
2 7

2
4
1

提示

【样例解释】

最开始的四个数组为 (2,1),(3,3),(1,1),(1,2)(2,1), (3,3),(1,1),(1,2)。以计算下标 2,42,4 的权值为例展示权值的计算方法:

  • 要计算下标 22 的权值,就要把 22113333 拼在一起得到 [1,1,3,3,3][1,1,3,3,3],最大众数为 33a2=3a_2=3,所以权值为 3×3=93\times 3 = 9
  • 要计算下标 44 的权值,就要把 2211333311111122 拼在一起得 [1,1,3,3,3,1,2][1,1,3,3,3,1,2],最大众数为 33a4=1a_4=1,所以权值为 3×1=33\times 1=3

以此类推,可知下标 1,2,3,41,2,3,4 的权值依次为 2,9,3,32,9,3,3。当 k=2k=2 时,3,43,4 的权值异或和 333\oplus 3 恰为 00,符合题意。

接下来将 a4a_4 增加 66 变成 77,显然前 33 个下标权值不变,下标 44 的权值变成 2×7=142\times 7=14。此时所有下标权值异或和 29314=62\oplus 9\oplus 3\oplus 14=6,符合题意,所以此时 k=4k=4

然后把 a3a_3 增加 88 变成 99。现在 141\sim 4 的权值依次为 2,9,9,72,9,9,7,此时 k=1,3k=1,3 时对应的权值异或和都是 77,此时取更小的 kk,所以输出 11

【数据范围】

LL 为所有操作结束后,所有 aia_i 的最大值(例如样例中,L=9L=9。)

测试点编号 n,mn,m\le 特殊性质
121\sim 2 3030 ai,y30a_i,y\le 30
343\sim 4 500500
575\sim 7 20002000
898\sim 9 3×1053\times 10^5 只有 2 操作
1010 bi=1b_i=1
111211\sim 12 bi2b_i\le 2
131513\sim 15 k5×105\sum k\le 5\times 10^5
161916\sim 19 k300k\le 300
202520\sim 25

对于全部数据,保证 3n,m3×1053\le n,m\le 3\times 10^5,且 1bin1\le b_i\le n1aiL1091\le a_i\le L\le 10^9

2 操作保证有解,且 k5×107\sum k\le 5\times 10^7

提示:本题读入量较大,建议选用较快的输入输出方式。