CodeForces 631A-Interview
来源:互联网 发布:js定时刷新 编辑:程序博客网 时间:2024/06/04 13:03
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 integersxl, xl + 1, ..., xr, wherexi is thei-th element of the array x. You are given two arrays a andb of length n. You need to determine the maximum value of sumf(a, l, r) + f(b, l, r) among all possible1 ≤ l ≤ r ≤ n.
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).
Print a single integer — the maximum value of sum f(a, l, r) + f(b, l, r) among all possible1 ≤ l ≤ r ≤ n.
51 2 4 3 22 3 3 12 1
22
1013 2 7 11 8 4 9 8 5 15 7 18 9 2 3 0 11 8 6
46
Bitwise OR of two non-negative integers a andb is the number c = a OR b, such that each of its digits in binary notation is1 if and only if at least one of a or b have 1 in the corresponding position in binary notation.
In the first sample, one of the optimal answers is l = 2 andr = 4, because f(a, 2, 4) + f(b, 2, 4) = (2OR 4 OR 3) + (3 OR 3 OR 12) = 7 + 15 = 22. Other ways to get maximum value is to choosel = 1 and r = 4,l = 1 and r = 5,l = 2 and r = 4,l = 2 and r = 5,l = 3 and r = 4, orl = 3 and r = 5.
In the second sample, the maximum value is obtained for l = 1 and r = 9.
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int wc[1100],wc1[1100];int xx[1100],xx1[1100];int sum[1111];int main(){int n;while(scanf("%d",&n)!=EOF){int i,j;memset(xx,0,sizeof(xx));memset(xx1,0,sizeof(xx1));for(i=0;i<n;i++){scanf("%d",&wc[i]);if(i==0){xx[i]=wc[0];}if(i>=1){xx[i]=max(wc[i-1],xx[i-1]|wc[i]);//printf("%d\n",xx[i]);}}/*for(i=0;i<n;i++){printf("%d\n",xx[i]);}*/for(i=0;i<n;i++){scanf("%d",&wc1[i]);if(i==0){xx1[i]=wc1[0];}if(i>=1){xx1[i]=max(wc1[i-1],xx1[i-1]|wc1[i]);}}int maxx=-1;for (int i=0;i<n;i++) { sum[i]=xx1[i]+xx[i]; if (maxx<sum[i]) maxx=sum[i]; } printf("%d\n",maxx);}return 0;}
- CodeForces 631A-Interview
- Codeforces 631A - Interview
- CodeForces 631A--Interview
- CodeForces 631A Interview
- 【Codeforces 631 A Interview】
- codeforces 631A Interview
- Codeforces 631A Interview 【水题】
- CodeForces 631A 631A - Interview
- CodeForces 631 A A. Interview【枚举】
- Codeforces 631A Interview【模拟水题】
- Codeforces--631A--Interview(位运算)
- CodeForces - 631A Interview (思想)水
- CodeForces 631A:Interview【位运算】
- CodeForces 631A Interview(水题)
- CodeForces 631 A.Interview(水~)
- Codeforces Round #344 (Div. 2) 631A Interview (DP)
- Codeforces 631A Interview(分析&&位运算| )
- Codeforces Round #380A - Interview with Oleg
- Unity3d多人游戏与网络功能(四)-状态机同步与远程动作
- 网址收藏
- post请求错误net::ERR_CONNECTION_RESET解决
- MySQL:索引工作原理及索引的用法
- MangoDB learning
- CodeForces 631A-Interview
- UDP java接受数据与发送数据
- Android中 android:layout_weight 属性 完美解释
- 一起看代码来玩玩QT之18QSqlDatabase(two 用QSqlTableModel 来操作database this way very nice)
- jquery validation plugin
- app中头像,圆形图片
- iOS 开发常用辅助工具
- Consumer (HDU_3449) 有依赖的背包问题
- 10分钟掌握XML、JSON及其解析