线性基

模板

#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 62;
int n, top;
long long p[65], a[65];
bool zero;
inline void insert (long long x) {
    for (int i = MAXN; i >= 0; i --)
        if ((x >> i) & 1) {
			if (!p[i]) {
				p[i] = x;
				return;
			} else x ^= p[i];			
		}
	zero = 1;
}
inline bool check (long long x) {
	for (int i = MAXN; i >= 0; i --)
        if ((x >> i) & 1) {
			if (!p[i]) return 0;
			else x ^= p[i];			
		}
	return 1;
}
inline long long queryMax () {
	long long res = 0;
	for (int i = MAXN; i >= 0; i --)
		res = max(res, res ^ p[i]);
	return res;
}
inline long long queryMin () {
	if (zero) return 0;
	for (int i = 0; i <= MAXN; i ++)
		if (p[i]) return p[i];
}
inline void rebuild () {
    for (int i = 0; i <= MAXN; i ++) {
        for (int j = i - 1; j >= 0; j --)
            if ((p[i] >> j) & 1) p[i] ^= p[j];
		if (p[i]) a[top ++] = p[i];
	}
}
long long query (long long k) {
	long long res = 0;
	k -= zero;
	if (k >= (1ll << top)) return -1;
	for (int i = 0; i < top; i ++)
		if ((k >> i) & 1) res ^= a[i];
	return res;
}
int main () {
	scanf("%d", &n);
	for (int i = 1; i <= n; i ++) {
		long long x;
		scanf("%lld", &x);
		insert(x);
	}
	printf("%lld\n", queryMax());
    return 0;
}
posted @   duoluoluo  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示