BZOJ 4269: 再见Xor 线性基+贪心
作者:互联网
Code:
#include <bits/stdc++.h> #define ll long long #define M 33 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,m; ll d[M*10]; void insert(ll x) { if(!x) return; for(int i=M;i>=0;--i) { if(x&(1ll<<i)) { if(d[i]) x^=d[i]; else { d[i]=x,++m; break; } } } } int main() { int i,j; // setIO("input"); scanf("%d",&n); for(i=1;i<=n;++i) { ll a; scanf("%lld",&a),insert(a); } ll qmax=0, qmin=0; for(i=M;i>=0;--i) if(d[i] && (qmax^d[i]) > qmax) qmax^=d[i]; qmin=qmax; for(i=0;i<=M;++i) if(d[i] && (qmin^d[i]) < qmin) { qmin^=d[i]; break; } printf("%lld %lld\n",qmax,m>1?qmin:0); return 0; }
标签:Xor,int,4269,ll,qmax,long,qmin,BZOJ,define 来源: https://www.cnblogs.com/guangheli/p/11534489.html