社区讨论

求助佬大

P10471最大异或对 The XOR Largest Pair参与者 4已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lzjgdx2p
此快照首次捕获于
2024/08/07 14:13
2 年前
此快照最后确认于
2024/08/07 15:05
2 年前
查看原帖
为啥明明数据是到10^5,却得开6e7???(6e7是看的讨论区)
CPP
#include<bits/stdc++.h>
using namespace std;
int n;
int a[6000086];
int e[6000086][2];
int tot;
int maxx;
int now,ans;
bool t;
void add(int x){
	now=0;
	for(int i=31;i>=0;i--){
		t=(x>>i)&1;
		if(!e[now][t])e[now][t]=++tot;
		now=e[now][t];
	}
	return;
}
int ask(int x){
	ans=0,now=0;
	for(int i=31;i>=0;i--){
		t=(x>>i)&1;
		if(!e[now][t^1])now=e[now][t];
		else{
			now=e[now][t^1];
			ans=ans^(1<<i);
		}
	}
	//cout<<ans<<endl;
	return ans;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		add(a[i]);
	}
	for(int i=1;i<=n;i++){
		maxx=max(maxx,ask(a[i]));
	}
	cout<<maxx;
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...