处理前缀异或和和后缀异或和,然后枚举分离位置 i i i,分别查询前缀异或最大和后缀异或最大,相加即可。(注意预处理)
代码
#include<iostream>#include<cstdio>#include<cstring>usingnamespace std;struct Trie{
int root,tot,son[12800001][2];Trie():root(1),tot(1){
memset(son,0,sizeof(son));}voidinsert(int x){
int u=root,b[31];