站外题求助
  • 板块学术版
  • 楼主hmycs
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/2 20:29
  • 上次更新2023/11/2 16:28:19
查看原帖
站外题求助
657814
hmycs楼主2023/10/2 20:29

题目描述

[丛雨]得到了一个长度为n的数组A和一个长度为m的数组 B,但是她并不满意,她决定发明一个数组C,满足对于每个i,存在j∈ [1, m]使得ci=ai&bj。但是丛雨发现这样的 C 数组太多了,她想请你最大化c1|c2|c3 . . . cn(&是按位与,|是按位或)。

输入格式

第一行两个整数n, m,分别表示数组A,B的长度。第二行n个整数,表示a1, a2, . . . , an第三行m个整数,表示b1, b2, . . . , bm。

输出格式

一行一个整数表示c1|c2|c3 . . . cn的最大值。

样例 #1

样例输入 #1

8 5
179 261 432 162 82 43 10 38
379 357 202 184 197

样例输出 #1

147

提示

对于20%的数据,保证m=1。

对于另外20%的数据,保证1≤n, m≤7。

对于另外20%的数据,保证1≤n, m≤50,0≤ai, bi<2^5。

对于100%的数据,保证1≤n, m≤200,0≤ai, bi<2^9。

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1005],b[1005],c[1005],dd;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=m;i++)
	{
		cin>>b[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			c[i]=max(c[i],a[i]&b[j]);
		}
	}
	dd=c[1];
	for(int i=2;i<=n;i++)
	{
		dd=dd|c[i];
	}
	cout<<dd;
	return 0;
}

怎么错了?

2023/10/2 20:29
加载中...