警示后人,如果你 RE 9pts
查看原帖
警示后人,如果你 RE 9pts
613794
jianhe楼主2024/11/29 07:16

注意 s&(1<<i) 的值为 00 或 2i2^i 而不是 00 或 11,因此要改为 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];
    }
}
2024/11/29 07:16
加载中...