#ABC291G. OR 求和
OR 求和
OR 求和
题目描述
有长度为 的序列 和 。
高桥君可以对 进行任意次(可能为 0 次)以下操作:
对序列 进行一次左循环移位。即,用 定义的 替换 ,其中 表示 除以 的余数。
高桥君的目标是最大化 ,其中 表示 和 的按位逻辑和(按位或)。
求 的最大可能值。
什么是按位逻辑和(按位或)?
逻辑和(或运算)是对两个一位整数(0 或 1)进行的运算,由下表定义。
按位逻辑和(按位或)是对每一位逐位应用逻辑和的运算。
| | | | | :---: | :---: | :---: | | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 1 |
如果 和 的位中至少有一个为 1,则逻辑和结果为 1。 反之,仅当两个位都为 0 时,结果才为 0。
例:
0110 | 0101 = 0111
输入格式
输入按以下格式从标准输入给出:
输出格式
输出 的最大可能值。
样例
3
0 1 3
0 2 3
8
如果高桥君不进行操作, 保持为 ,有 $\displaystyle\sum_{i=0}^{N-1} (A_i|B_i)=(0|0)+(1|2)+(3|3)=0+3+3=6$;
如果进行一次操作,使 ,有 $\displaystyle\sum_{i=0}^{N-1} (A_i|B_i)=(1|0)+(3|2)+(0|3)=1+3+3=7$;
如果进行两次操作,使 ,有 $\displaystyle\sum_{i=0}^{N-1} (A_i|B_i)=(3|0)+(0|2)+(1|3)=3+2+3=8$。
如果进行三次及以上操作, 会变成上述序列之一,因此 的最大值为 ,应输出 。
5
1 6 1 4 3
0 6 4 0 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$。
数据范围
- 输入中的所有值均为整数。
- ID
- 2630
- 类型
- 传统题
- Time Limit
- 6276ms
- Memory Limit
- 1024MiB
- 上传者