Xor Basis - YessineJallouli/Competitive-Programming GitHub Wiki
struct xorBasis {
int basis[31];
void clear(){
memset(basis, 0,sizeof basis);
}
void addVector(int x) {
for (int i = 30; i >= 0; i--) {
if (((1 << i) & x) == 0) continue;
if (basis[i])
x^= basis[i];
else {
basis[i] = x;
return;
}
}
}
int size() {
int sz = 0;
for (int i = 0; i < 31; i++) {
if (basis[i])
sz++;
}
return sz;
}
int getMax(){
int value=0;
for(int i=30;i>=0;i--){
if(value&(1<<i)) continue;
if(basis[i]){
value^=basis[i];
}
}
return value;
}
};
Resources :
https://codeforces.com/blog/entry/68953
Problems :
https://codeforces.com/contest/959/problem/F