全WA,求调,悬3关
查看原帖
全WA,求调,悬3关
1397517
guanzisheng2楼主2024/10/1 10:44
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+100,D=31;
int n,ch[N*30][2],cnt=1;
void insert(int x){
	int u=1;
	for(int j=D;j>=0;j--){
		int k=0;
		if(x&(1<<j)) k=1;
		if(ch[u][k]==0) ch[u][k]=++cnt;
		u=ch[u][k];
	}
}
int query(int x){
	int u=1,res=0;
	for(int j=D;j>=0;j--){
		int k=0;
		if(x&(1<<j)) k=1;
		if(ch[u][k^1]) u=ch[u][k^1],res+=(1<<j);
		else u=ch[u][k];
	} 
	return res;
}
signed main(){
	cin>>n;
	int ans=0;
	for(int i=1,x;i<=n;i++){
		cin>>x;
		ans=max(x,query(x)),insert(x);
	}
	cout<<ans;
}
2024/10/1 10:44
加载中...