1636: [CSP-S 2024] 擂台游戏

内存限制:128 MB 时间限制:4.000 S
评测方式:文本比较 命题人:
提交:5 解决:1

题目描述

小 S 想要举办一场擂台游戏,如果共有 2k 名选手参加,那么游戏分为 k 轮进行:

  • 第一轮编号为 1,2 的选手进行一次对局,编号为 3,4 的选手进行一次对局,以此类推,编号为 2k1,2k 的选手进行一次对局。
  • 第二轮在只保留第一轮的胜者的前提下,相邻的两位依次进行一场对局。
  • 以此类推,第 k1 轮在只保留第 k2 轮的 4 位胜者的前提下,前两位、后两位分别进行对局,也就是所谓的半决赛。
  • 第 k 轮即为半决赛两位胜者的决赛。

确定了游戏晋级的规则后,小 S 将比赛的规则设置为了擂台赛。具体而言,每位选手都有一个能力值 a1,a2,,a2k,能力值为 [0,2311] 之内的整数。对于每场比赛,会先抽签决定一个数 0/1,我们将第 R 轮的第 G 场比赛抽到的数记为 dR,G。抽到 0 则表示表示编号小的选手为擂主,抽到 1 则表示编号大的选手为擂主。擂主获胜当且仅当他的能力值 aR。也就是说,游戏的胜负只取决于擂主的能力值当前比赛是第几轮的大小关系,与另一位的能力值无关

现在,小 S 先后陆续收到了 n 位选手的报名信息,他们分别告知了小 S 自己的能力值。小 S 会按照报名的先后顺序对选手进行编号为 1,2,,n。小 S 关心的是,补充尽量少的选手使总人数为 2 的整次幂,且所有选手进行一次完整的擂台游戏后,所有可能成为总冠军的选手的编号之和是多少。

形式化地,设 k 是最小的非负整数使得 2kn,那么应当补充 (2kn) 名选手,且补充的选手的能力值可以任取 [0,2311] 之内的整数。如果补充的选手有可能取胜,也应当计入答案中

当然小 S 觉得这个问题还是太简单了,所以他给了你 m 个询问 c1,c2,,cm。小 S 希望你帮忙对于每个 ci 求出,在只收到前 ci 位选手的报名信息时,这个问题的答案是多少。

输入

本题的测试点包含有多组测试数据。 但不同测试数据只是通过修改 a1,a2,,an 得到,其他内容均保持不变,请参考以下格式。其中  代表异或运算符,amodb 代表 a 除以 b 的余数。

输入的第一行包含两个正整数 n,m,表示报名的选手数量和询问的数量。

输入的第二行包含 n 个非负整数 a1,a2,,an,这列数将用来计算真正的能力值。

输入的第三行包含 m 个正整数 c1,c2,,cm,表示询问。

设 K 是使得 2Kn 的最小的非负整数,接下来的 K 行当中,第 R 行包含 2KR 个数(无空格),其中第 G 个数表示第 R 轮的第 G 场比赛抽签得到的 dR,G=0/1

注意,由于询问只是将人数凑齐到 2kci,这里的 kK,因此你未必会用到全部的输入值。

接下来一行包含一个正整数 T,表示有 T 组测试数据。

接下来共 T 行,每行描述一组数据,包含 4 个非负整数 X0,X1,X2,X3,该组数据的能力值 ai=aiXimod4,其中 1in

输出

共输出 T 行,对于每组数据,设 Ai 为第 i1im)组询问的答案,你只需要输出一行包含一个整数,表示 (1×A1)(2×A2)(m×Am) 的结果。

样例输入 复制

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

提示

对于所有测试数据,保证:2n,m1050ai,Xj<2311cin1T256

测试点 T= n,m 特殊性质 A 特殊性质 B
13 1 8
4,5 1 500
68 1 500
9,10 1 5000
11,12 1 105
1315 1 105
16,17 4 105
18,19 16 105
20,21 64 105
22,23 128 105
24,25 256 105

特殊性质 A:保证询问的 ci 均为 2 的幂次。

特殊性质 B:保证所有的 dR,G=0

来源/分类