CF631A.Interview

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Interview

题目描述

Blake 是一家名为“Blake Technologies”的大型公司的 CEO。他非常热爱自己的公司,并且认为自己的公司应该成为最好的。因此,每一位候选人都需要通过一道包含以下内容的面试题。

我们定义函数 f(x,l,r)f(x,l,r) 为整数 xl,xl+1,,xrx_l, x_{l+1}, \ldots, x_r 的按位或(bitwise OR),这里 xix_i 表示数组 xx 的第 ii 个元素。现在给定长度为 nn 的数组 aabb,请你求出所有 1lrn1 \leq l \leq r \leq n 中,f(a,l,r)+f(b,l,r)f(a,l,r) + f(b,l,r) 的最大值。

输入格式

输入的第一行包含一个整数 nn1n10001 \leq n \leq 1000),表示两个数组的长度。

第二行包含 nn 个整数 aia_i0ai1090 \leq a_i \leq 10^9)。

第三行包含 nn 个整数 bib_i0bi1090 \leq b_i \leq 10^9)。

输出格式

输出一个整数,表示所有 1lrn1 \leq l \leq r \leq nf(a,l,r)+f(b,l,r)f(a,l,r) + f(b,l,r) 的最大值。

说明/提示

两个非负整数 aabb 的按位或是数 c=a OR bc = a\ \text{OR}\ b,其二进制表示中,每一位若 aabb 中至少有一个在对应位上为 11,则 cc 的该位也为 11

在第一个样例中,一个最优的答案是 l=2l=2r=4r=4,因为 $f(a,2,4) + f(b,2,4) = (2\ \text{OR}\ 4\ \text{OR}\ 3) + (3\ \text{OR}\ 3\ \text{OR}\ 12) = 7 + 15 = 22$。其他能得到最大值的方法还包括选择 l=1l=1r=4r=4l=1l=1r=5r=5l=2l=2r=4r=4l=2l=2r=5r=5l=3l=3r=4r=4l=3l=3r=5r=5

在第二个样例中,最大值在 l=1l=1r=9r=9 时取得。

由 ChatGPT 5 翻译

样例

5
1 2 4 3 2
2 3 3 12 1
22
10
13 2 7 11 8 4 9 8 5 1
5 7 18 9 2 3 0 11 8 6
46

在线编程 IDE

建议全屏模式获得最佳体验