题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
static void insert_front(int x){
int p=0;
for(int i=21;i>=0;i--){
int u=x>>i&1;
if(son[p][u]==0)
son[p][u]=++idx;
p=son[p][u];
}
}
//找到x的最大异或对
//思想:尽量走反方向
static int query_front(int x){
int p=0;
int res=0;
for(int i=21;i>=0;i--){
int u=x>>i&1^1;
int j=u^1;
if(son[p][u]!=0){
res+=1<<i;
p=son[p][u];
}else{
if(son[p][j]!=0){
p=son[p][j];
}else{
return res;
}
}
}
return res;
}static void insert_back(int x){
int p=0;
for(int i=21;i>=0;i--){
int u=x>>i&1;
if(son1[p][u]==0)
son1[p][u]=++idx_back;
p=son1[p][u];
}
}
//找到x的最小异或对
//思想:尽量走相同的路
static int query_back(int x){
int p=0;
int res=0;
for(int i=21;i>=0;i--){
int u=x>>i&1;
int j=u^1;
if(son1[p][u]!=0){
p=son1[p][u];
}else{
if(son1[p][j]!=0){
p=son1[p][j];
res+=1<<i;
}else{
return res;
}
}
}
return res;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla