记录编号 243061 评测结果 AAAAAAAAAA
题目名称 平凡的数据范围 最终得分 100
用户昵称 GravatarFmuckss 是否通过 通过
代码语言 C++ 运行时间 0.017 s
提交时间 2016-03-29 08:39:31 内存使用 5.86 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
const int maxn = 1e5;
int n;
bool a[65][maxn];
inline LL get_num() {
	LL ans = 0;
	char tmp = getchar();
	while(tmp < '0' || tmp > '9') tmp = getchar();
	while(tmp <= '9' && tmp >= '0') {
		ans = ans*10 + tmp-'0';
		tmp = getchar(); 
	}
	return ans;
} 

LL gauss() {
	LL ans = 0;
	for(int i = 1; i <= 63; i++) {
		int j = 0;
		while(j <= n && !a[i][j]) j++;
		if(j > n & a[i][n+1]) continue;//当前枚举行没有自由元且 被选择多次后最后一位依然存在(异或不掉) 
		ans |= (1ll << (63-i));
		for(int k = i+1; k <= 63; k++) {
			if(a[k][j]) {
				for(int l = 1; l <= n+1; l++) {
					a[k][l] ^= a[i][l];
				}
			}
		}
	}
	return ans;
}

int main() {
	freopen("xor_equ.in", "r", stdin);
	freopen("xor_equ.out", "w", stdout);
	n = (int)get_num();
	for(int i = 1; i <= n; i++) {
		LL tmp = get_num();
		int k = 0;
		while(tmp) {
			a[63-k][i] = (tmp & 1);
			tmp >>= 1;
			k++;
		}
	} 
	for(int i = 1; i <= 63; i++) {
		a[i][n+1] = true;
	}
	printf("%lld", gauss());
	return 0;
}