bzoj 2460 线性基
作者:互联网
#include<bits/stdc++.h> #define ll long long #define LL long long #define int long long using namespace std; const int maxn=1e4+10; int a[maxn]; int b[maxn]; int p[100]; int pp[100]; int32_t main() { int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]; for(int i=1;i<=n;i++) { for(int j=64;j>=0;j--) { if( (a[i]>>j) & 1 ) { if(!p[j]) { p[j]=a[i]; pp[j]=b[i]; break; } else { if(b[i]>pp[j]) { swap(b[i],pp[j]); swap(a[i],p[j]); } a[i]^=p[j]; } } } } int ans=0; for(int i=0;i<=64;i++) { ans+=pp[i]; } cout<<ans<<endl; }
标签:pp,2460,int,long,maxn,swap,线性,define,bzoj 来源: https://www.cnblogs.com/Andromeda-Galaxy/p/10530595.html