題解——洛谷P3812【模板】線性基
阿新 • • 發佈:2018-09-08
打了 () 運算優先級 運算 pac sca bre std 線性基
學了下線性基
使用好像並不復雜
打了板子
但是要註意位運算優先級
#include <cstdio> #include <algorithm> #include <cstring> #define int long long using namespace std; const int MAX_BASE=(long long)63; int base[64],a[60],n; void getbase(void){ for(int i=1;i<=n;i++){ for(int j=MAX_BASE;j>=0;j--){if(a[i]>>j){ if(!base[j]){ base[j]=a[i]; break; } a[i]^=base[j]; } } } } int ans=0; void query(void){ for(int i=MAX_BASE;i>=0;i--) if((base[i]^ans)>ans) ans=base[i]^ans; } signed main(){ freopen("testdata (1).in","r",stdin); scanf("%lld",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); getbase(); query(); printf("%lld\n",ans); }
題解——洛谷P3812【模板】線性基