标签:bsp cout UNC list html 输出 ora 输入输出格式 重复
给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。
输入格式:
第一行一个数n,表示元素个数
接下来一行n个数
输出格式:
仅一行,表示答案。
1≤n≤50,0≤Si?≤2^50
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
ll a[100010], b[70];
ll n, ans=0;
int main()
{
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	for (int i = 0; i <n; i++)
		for (int j = 62; j >= 0; j--)
			if (1ll << j & a[i])
				if (!b[j]) {
					b[j] = a[i];
					break;
				}
				else
					a[i] ^= b[j];
	for (int i = 62; i >= 0; i--)
		ans = max(ans, ans^b[i]);
	cout << ans << endl;
	return 0;
}
//c++ max函数头文件是#include<algorithm>
标签:bsp cout UNC list html 输出 ora 输入输出格式 重复
原文地址:https://www.cnblogs.com/52dxer/p/10353489.html