博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #344 (Div. 2) A. Interview 水题
阅读量:6291 次
发布时间:2019-06-22

本文共 1411 字,大约阅读时间需要 4 分钟。

A. Interview

题目连接:

Description

Blake is a CEO of a large company called "Blake Technologies". He loves his company very much and he thinks that his company should be the best. That is why every candidate needs to pass through the interview that consists of the following problem.

We define function f(x, l, r) as a bitwise OR of integers xl, xl + 1, ..., xr, where xi is the i-th element of the array x. You are given two arrays a and b of length n. You need to determine the maximum value of sum f(a, l, r) + f(b, l, r) among all possible 1 ≤ l ≤ r ≤ n.

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 1000) — the length of the arrays.

The second line contains n integers ai (0 ≤ ai ≤ 109).

The third line contains n integers bi (0 ≤ bi ≤ 109).

Output

Print a single integer — the maximum value of sum f(a, l, r) + f(b, l, r) among all possible 1 ≤ l ≤ r ≤ n.

Sample Input

5

1 2 4 3 2
2 3 3 12 1

Sample Output

22

Hint

题意

给你2*n的矩阵

然后定义一个函数f(a,l,r)表示a数组在l到r的或值

然后让你找到一对l,r,使得f(a,l,r)+f(b,l,r)最大

题解:

由于是或嘛,所以就把所有数全部或起来

代码

#include
using namespace std;long long ans = 0;int main(){ int n; scanf("%d",&n); long long tmp = 0; for(int i=1;i<=n;i++) { long long x; scanf("%lld",&x); tmp|=x; } ans+=tmp; tmp = 0; for(int i=1;i<=n;i++) { long long x; scanf("%lld",&x); tmp|=x; } ans+=tmp; cout<
<

转载地址:http://rjcta.baihongyu.com/

你可能感兴趣的文章
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>