求调
查看原帖
求调
1341269
xiao_liran楼主2024/7/10 22:36
#include <bits/stdc++.h>
using namespace std;

long long d[70],n,a[60],ans;
bool check(){
	for(long long i = 60;i >= 0;i--)
	{
		if((d[i]^ans)>ans)
		{
			ans^=d[i];
		}
	}
	return ans;
}
int main(){
	cin>>n;
	for(long long g=0;g<n;g++){
		cin>>a[g];
		for(long long i=60;i>=0;i--){
			long long x=a[g];
			for(long long j=i-1;j>=0;j--){
				if(x&(1ll<<j)){
					if(d[j]==0){
						d[j]=x;
						break;
					}
					else x^=d[j];
				}
			}
		}
		
		for(long long i=60;i>=0;i--){
			for(long long j=i-1;j>=0;j--){
				if(d[i]&(1ll<<j)){
					d[j]^=d[i];
				}
			}
		}
		//cout<<"-->"<<endl;
	}
	cout<<check()<<endl;
	return 0;
}
2024/7/10 22:36
加载中...