CFCF2115D.Gellyfish and Forget-Me-Not
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Gellyfish 和 Flower 正在玩一个游戏。
该游戏包含两个长度为 n 的整数数组 a1,a2,…,an 和 b1,b2,…,bn,以及一个长度为 n 的二进制字符串 c1c2…cn。
还有一个整数 x,初始值为 0。
游戏进行 n 回合。对于 i=1,2,…,n,每一回合如下进行:
-
如果 ci=0,那么 Gellyfish 是该回合的操作者。否则,如果 ci=1,那么 Flower 是该回合的操作者。
-
当前操作者必须执行以下两个操作之一:
- 将 x:=x⊕ai;
- 将 x:=x⊕bi。
这里,⊕ 表示按位异或操作。
Gellyfish 希望使 x 的最终值尽可能小,而 Flower 则希望使它尽可能大。
如果双方都采取最优策略,求 n 回合后 x 的最终值。
输入格式
每个测试包含多个测试用例。第一行是一个整数 t(1≤t≤104)——测试用例的数量。接下来的内容为各个测试用例的描述。
每个测试用例的第一行是一个整数 n(1≤n≤105)——游戏的回合数。
第二行包含 n 个整数 a1,a2,...,an(0≤ai<260)。
第三行包含 n 个整数 b1,b2,...,bn(0≤bi<260)。
第四行是一个长度为 n 的二进制字符串 c。
保证所有测试用例中 n 的总和不超过 105。
输出格式
对于每个测试用例,输出一行一个整数,表示所有 n 回合结束后 x 的最终值。
输入输出样例
输入#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 是操作者。因此她会选择 a1,最终 x=0。
在第二个测试用例中,Flower 是两轮的操作者。她可以选择 a1 和 b2,最终 x=a1⊕b2=15。她也可以选择 b1 和 a2,此时 x=a2⊕b1=15,结果相同。
在第三个测试用例中,a1=b1,因此 Gellyfish 无论怎么选都一样。在第二轮:
- 若 Flower 选择 a2,则 x 变成 7,Gellyfish 选择 b3,最终 x=4;
- 若 Flower 选择 b2,则 x 变成 4,Gellyfish 选择 a3,最终 x=6。
Flower 想要最大化 x,因此她会选 b2,最终 x=6。