线性基(模板)
Posted minun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性基(模板)相关的知识,希望对你有一定的参考价值。
线性基性质:
1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到。
2.线性基里面的任意一些数异或起来都不能得到0 0
3.线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的
//#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<set> #include<map> #include<vector> #define mem(a,b) memset(a,b,sizeof(a)) #define ll long long #define sl(x) scanf("%lld",&(x)) #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; int p[105]; void Insert(int now) per(i,62,0) if((now&((ll)1<<i))) if(!p[i]) p[i]=now; break; now^=p[i]; #undef int int main() #define int long long int n; sl(n); rep(i,1,n) int now; sl(now); Insert(now); int ans=0; per(i,62,0) if((ans^p[i])>ans) ans^=p[i]; cout<<ans<<"\n"; return 0;
以上是关于线性基(模板)的主要内容,如果未能解决你的问题,请参考以下文章