首页 > 其他 > 详细

【题解】 bzoj2460: [BeiJing2011]元素 (线性基)

时间:2018-06-24 19:57:17      阅读:192      评论:0      收藏:0      [点我收藏+]

bzoj2460,戳我戳我

Solution:

  • 线性基板子,没啥好说的,注意long long 就好了

Code:

//It is coded by Ning_Mew on 5.29
#include<bits/stdc++.h>
#define LL long long
using namespace std;

const int maxn=1007;

int n;
LL A[maxn];
struct Node{
  LL num;int val;
}s[maxn];
LL ans=0;

bool cmp(const Node &x,const Node &y){return x.val>y.val;}

bool check(int k){
  bool kk=false;
  for(int i=60;i>=0;i--){
    if((s[k].num>>i)&1){
      if(!A[i]){
        A[i]=s[k].num; kk=true; break;
      }else{
        s[k].num=(s[k].num^A[i]);
      }
    }
  }return kk;
}
int main(){
  scanf("%d",&n);
  for(int i=1;i<=n;i++){
    scanf("%lld%d",&s[i].num,&s[i].val);
  }
  sort(s+1,s+n+1,cmp);
  
  for(int i=1;i<=n;i++){
    if(check(i))ans+=s[i].val;
  }
  printf("%lld\n",ans);
  return 0;
}

【题解】 bzoj2460: [BeiJing2011]元素 (线性基)

原文:https://www.cnblogs.com/Ning-Mew/p/9104842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!