CFCF2115D.Gellyfish and Forget-Me-Not

省选/NOI-

官方

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Gellyfish 和 Flower 正在玩一个游戏。

该游戏包含两个长度为 nn 的整数数组 a1,a2,,ana_1,a_2,\ldots,a_nb1,b2,,bnb_1,b_2,\ldots,b_n,以及一个长度为 nn 的二进制字符串 c1c2cnc_1c_2\ldots c_n

还有一个整数 xx,初始值为 00

游戏进行 nn 回合。对于 i=1,2,,ni = 1,2,\ldots,n,每一回合如下进行:

  1. 如果 ci=0c_i = 0,那么 Gellyfish 是该回合的操作者。否则,如果 ci=1c_i = 1,那么 Flower 是该回合的操作者。

  2. 当前操作者必须执行以下两个操作之一:

    • x:=xaix := x \oplus a_i
    • x:=xbix := x \oplus b_i

这里, 表示按位异或操作。

Gellyfish 希望使 xx 的最终值尽可能小,而 Flower 则希望使它尽可能大。

如果双方都采取最优策略,求 nn 回合后 xx 的最终值。

输入格式

每个测试包含多个测试用例。第一行是一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。接下来的内容为各个测试用例的描述。

每个测试用例的第一行是一个整数 nn1n1051 \le n \le 10^5)——游戏的回合数。

第二行包含 nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n0ai<2600 \le a_i < 2^{60})。

第三行包含 nn 个整数 b1,b2,...,bnb_1, b_2, ..., b_n0bi<2600 \le b_i < 2^{60})。

第四行是一个长度为 nn 的二进制字符串 cc

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,输出一行一个整数,表示所有 nn 回合结束后 xx 的最终值。

输入输出样例

  • 输入#1

    5
    1
    0
    2
    0
    2
    12 2
    13 3
    11
    3
    6 1 2
    6 2 3
    010
    4
    1 12 7 2
    4 14 4 2
    0111
    9
    0 5 10 6 6 2 6 2 11
    7 3 15 3 6 7 6 7 8
    110010010

    输出#1

    0
    15
    6
    11
    5

说明/提示

在第一个测试用例中,只有一轮,且 Gellyfish 是操作者。因此她会选择 a1a_1,最终 x=0x = 0

在第二个测试用例中,Flower 是两轮的操作者。她可以选择 a1a_1b2b_2,最终 x=a1b2=15x = a_1 ⊕ b_2 = 15。她也可以选择 b1b_1a2a_2,此时 x=a2b1=15x = a_2 ⊕ b_1 = 15,结果相同。

在第三个测试用例中,a1=b1a_1 = b_1,因此 Gellyfish 无论怎么选都一样。在第二轮:

  • 若 Flower 选择 a2a_2,则 xx 变成 77,Gellyfish 选择 b3b_3,最终 x=4x = 4
  • 若 Flower 选择 b2b_2,则 xx 变成 44,Gellyfish 选择 a3a_3,最终 x=6x = 6

Flower 想要最大化 xx,因此她会选 b2b_2,最终 x=6x = 6

首页