数据过水?
查看原帖
数据过水?
602803
_qingshu_楼主2024/11/23 10:30

我的第一版代码是这样的:

#include<bits/stdc++.h>
using namespace std;
int n;
long long ans;
long long a[100],b[100];
void work(long long x){
	for(long long i=63;i>=0;i--){
		if(x>>i){
			if(!b[i]){
				b[i]=x;
				break;
			}
			else{
				x^=b[i];
			}
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		work(a[i]);
	}	
	for(int i=63;i>=0;i--){
		ans=max(ans,ans^b[i]);
	}
	cout<<ans;
}

其中在线性基处理部分出现了 x>>i 的神秘字样,理应是 x>>i&1,但是这份代码通过了此题,是这样写并无错误还是数据过水?

2024/11/23 10:30
加载中...