Where_Free

羸弱 无知 自大 懒惰

线性基模板

void add(ll x){//线性基插入创建模板
    for(int i=50;i>=0;i--){
        if(x&(1ll<<i))//注意,如果i大于31,前面的1的后面一定要加ll
        {
            if(d[i])x^=d[i];
            else{
                d[i]=x;
                break;//记得如果插入成功一定要退出
            }
        }
    }
}

  

ll ans(){//求异或最大值/最小值模板
    ll anss=0;
    for(int i=50;i>=0;i--)//记得从线性基的最高位开始
    if((anss^d[i])>anss)anss^=d[i];
    return anss;
 }   

  

posted on 2019-07-22 21:40  Where_Free  阅读(135)  评论(0编辑  收藏  举报

导航