线性基模板
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 阅读(140) 评论(0) 收藏 举报
浙公网安备 33010602011771号