[模板]线性基

aRenBigFather

2019-02-23 15:42:23

Personal

[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; } ```