其他分享
首页 > 其他分享> > bzoj 2460 线性基

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