线性基模板

int d[maxn];
int f;
void insert(int x){
    for(int i=63;i>=0;i--){
        if(x&(1ll<<i)){
            if(!d[i]){
                d[i]=x;break;
            }else x^=d[i];
        }
    }
    f=1;
}
int check(int x){
    for(int i=63;i>=0;i--){
        if(x&(1ll<<i))x^=d[i];
    }
    return x==0;
}
int ask_max(){
    int ans=0;
    for(int i=63;i>=0;i--){
        if((ans^d[i])>ans)ans^=d[i];
    }
    return ans;
}
int ask_min(){
    if(f)return 0;
    for(int i=0;i<=62;i++){
        if(d[i])return d[i];
    }
}
posted @ 2025-06-16 19:50  Marinaco  阅读(11)  评论(0)    收藏  举报
//雪花飘落效果