编号连续的选手按固定顺序进行二叉淘汰赛:第一轮依次进行 (1,2),(3,4),… 的比赛,后续每轮让相邻的胜者配对。
第 R 轮第 G 场比赛的 dR,G∈{0,1} 指定擂主:0 表示较小编号者为擂主,1 表示较大编号者为擂主。若擂主的能力值至少为 R,则擂主获胜;否则另一位选手获胜,另一位选手的能力值不影响该场结果。
对于每个前缀长度 c,保留前 c 位报名选手,并补充到不小于 c 的最小二次幂人数。补充者编号顺延,其能力值可独立任选 [0,231−1] 中的整数。求在各种补充能力取值下,可能成为冠军的编号之和;每个编号只计一次。抽签 d 固定,不可任选。
输入通过异或生成多组能力值:第 i 人的实际能力为 aiXORXimod4,其中 i 从 1 开始。
输入格式
第一行包含 n,m。第二行包含 n 个初始能力值 ai,第三行包含 m 个前缀查询 ci。
令 K=⌈log2n⌉。随后给出 K 行:第 R 行是一个长度为 2K−R 的无空格 01 串。再输入一个整数 T;接下来 T 行中,第 t 行给出 X0,X1,X2,X3。
输出格式
对每组 X 输出一行。若 m 个查询的答案依次为 A1,A2,…,Am,则输出
i=1⨁mi⋅Ai.
乘法使用足够宽的整数。
样例 1
5 5
0 0 0 0 0
5 4 1 2 3
1001
10
1
4
2 1 0 0
1 2 1 0
0 2 3 1
2 2 0 1
5
19
7
1
数据范围与原题特殊限制
对于所有测试数据,保证:2≤n,m≤105,0≤ai,Xj<231,1≤ci≤n,1≤T≤256。
| 测试点 |
T= |
n,m≤ |
特殊性质 A |
特殊性质 B |
| 1∼3 |
1 |
8 |
否 |
否 |
| 4,5 |
500 |
是 |
| 6∼8 |
否 |
是 |
| 9,10 |
5000 |
否 |
| 11,12 |
105 |
是 |
| 13∼15 |
否 |
是 |
| 16,17 |
4 |
否 |
| 18,19 |
16 |
| 20,21 |
64 |
| 22,23 |
128 |
| 24,25 |
256 |
特殊性质 A:保证询问的 ci 均为 2 的幂次。
特殊性质 B:保证所有的 dR,G=0。
来源与数据说明
原题页面。以上题意为重新整理的表述,规则、输入输出和约束与原题一致。本题使用独立生成的训练数据,原题测试点表仅说明原比赛范围与特殊性质,本包评分不复刻官方测试点分布。标准输入输出,不要求文件读写。