[模板]线性基
aRenBigFather
2019-02-23 15:42:23
[this page is good](https://ji-suan-ke.blog.luogu.org/bobh-bo-ke)
[BobH 博客引流](https://bobh.mkaliez.com/)
![](https://hk-mkaliez-oss.oss-cn-hongkong.aliyuncs.com/uploads/2020/03/mori1.jpg)
[题解 CF1225D 【Power Products】](https://bobh.mkaliez.com/archives/70/)
[BobH的gal引擎](https://bobh.mkaliez.com/archives/67/)
[长沙十天集训总结](https://bobh.mkaliez.com/archives/66/)
[长郡第3次集训总结](https://bobh.mkaliez.com/archives/65/)
[2019.3 长郡省选集训算法总结](https://bobh.mkaliez.com/archives/64/)
[使用PHP搭建一个自己的英文句式搜索引擎](https://bobh.mkaliez.com/archives/62/)
[Vue学习笔记](https://bobh.mkaliez.com/archives/40/)
[如何使Typecho博客快速被百度收录](https://bobh.mkaliez.com/archives/38/)
[数列的递推形式](https://bobh.mkaliez.com/archives/28/)
[斜率优化学习笔记](https://bobh.mkaliez.com/archives/22/)
[高等数学学习笔记](https://bobh.mkaliez.com/archives/21/)
[使用docker安装gitlab中文版记录](https://bobh.mkaliez.com/archives/19/)
# 线性基模板
```cpp
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int maxn = 50;
const int maxbit = 64;
int n;
ll a[maxn],p[maxbit];
int main(){
scanf("%d",&n);
memset(a,0,sizeof a);
memset(p,0,sizeof p);
for(int i=1;i<=n;i++){
scanf("%lld",a+i);
//构造线性鸡
for(int j=62;j>=0;j--){
if(!(a[i]>>j)) continue;
if(!p[j]){
p[j] = a[i];
break;
}
a[i] ^= p[j];
}
}
ll ans = 0;
for(int i=62;i>=0;i--){
ans = max(ans,ans^p[i]);
}
printf("%lld",ans);
return 0;
}
```