AT_abc291_g.[ABC291G] OR Sum

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定长度为 NN 的数列 A=(A0,A1,…,AN−1)A=(A_0,A_1,\ldots,A_{N-1}) 和 B=(B0,B1,…,BN−1)B=(B_0,B_1,\ldots,B_{N-1})。

此外,高桥君可以对数列 AA 任意次(可以为 00 次)进行如下操作:

  • 将 AA 向左循环移动一位,即用 Ai′=A(i+1)%NA'_i = A_{(i+1)\%N} 定义的新数列 A′A' 替换 AA。其中,x%Nx\%N 表示 xx 除以 NN 的余数。

高桥君的目标是最大化 ∑i=0N−1(Ai∣Bi)\displaystyle\sum_{i=0}^{N-1}(A_i|B_i)。其中,x∣yx|y 表示 xx 和 yy 的按位或(bitwise OR)运算。

请你求出 ∑i=0N−1(Ai∣Bi)\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) 的最大可能值。

按位或(bitwise OR)是对每一位的 00 或 11 进行如下表所示的运算:

xx yy xOR⁡yx \operatorname{OR} y
0 0 0
0 1 1
1 0 1
1 1 1

按位或的结果是:只要 xx 或 yy 的某一位至少有一个为 11,结果的该位就是 11;只有两位都为 00 时结果才为 00。

具体例子
0110 | 0101 = 0111

输入格式

输入以如下格式从标准输入给出。

NN A0A_0 A1A_1 …\ldots AN−1A_{N-1} B0B_0 B1B_1 …\ldots BN−1B_{N-1}

输出格式

输出 ∑i=0N−1(Ai∣Bi)\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) 的最大可能值。

输入输出样例

  • 输入#1

    3
    0 1 3
    0 2 3

    输出#1

    8
  • 输入#2

    5
    1 6 1 4 3
    0 6 4 0 1

    输出#2

    23

说明/提示

限制条件

  • 2≤N≤5×1052 \leq N \leq 5\times 10^5
  • 0≤Ai,Bi≤310 \leq A_i, B_i \leq 31
  • 输入均为整数

样例解释 1

当高桥君一次操作都不进行时,AA 仍为 (0,1,3)(0,1,3),此时 ∑i=0N−1(Ai∣Bi)=(0∣0)+(1∣2)+(3∣3)=0+3+3=6\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) = (0|0) + (1|2) + (3|3) = 0 + 3 + 3 = 6。

当高桥君进行 11 次操作时,A=(1,3,0)A=(1,3,0),此时 ∑i=0N−1(Ai∣Bi)=(1∣0)+(3∣2)+(0∣3)=1+3+3=7\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) = (1|0)+(3|2)+(0|3)=1+3+3=7。

当高桥君进行 22 次操作时,A=(3,0,1)A=(3,0,1),此时 ∑i=0N−1(Ai∣Bi)=(3∣0)+(0∣2)+(1∣3)=3+2+3=8\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) = (3|0)+(0|2)+(1|3)=3+2+3=8。

进行 33 次及以上操作时,AA 会回到上述某种状态,因此 ∑i=0N−1(Ai∣Bi)\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) 的最大值为 88,输出 88。

样例解释 2

最大值出现在高桥君进行 33 次操作时,此时 A=(4,3,1,6,1)A=(4,3,1,6,1),∑i=0N−1(Ai∣Bi)=(4∣0)+(3∣6)+(1∣4)+(6∣0)+(1∣1)=4+7+5+6+1=23\displaystyle\sum_{i=0}^{N-1}(A_i|B_i) = (4|0)+(3|6)+(1|4)+(6|0)+(1|1)=4+7+5+6+1=23。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页