注意 s&(1<<i) 的值为 0 或 2i 而不是 0 或 1,因此要改为 s>>i&1。
void insert(ll s,ll x=0){
for(int i=30;~i;i--){
if(!tr[x][s&(1<<i)]) tr[x][s&(1<<i)]=++ct;
x=tr[x][s&(1<<i)];
}
}
->
void insert(ll s,ll x=0){
for(int i=30;~i;i--){
if(!tr[x][s>>i&1]) tr[x][s>>i&1]=++ct;
x=tr[x][s>>i&1];
}
}