zoukankan      html  css  js  c++  java
  • [luogu4570]元素

    根据魔法值从大到小插入到线性基中,然后即输出线性基中的所有数之和

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 struct ji{
     5     ll id;
     6     int k;
     7     bool operator < (const ji &a)const{
     8         return k>a.k;
     9     }
    10 }b[1005];
    11 int n,ans;
    12 ll a[101];
    13 void add(ll k,int t){
    14     for(int i=62;i>=0;i--)
    15         if (k&(1LL<<i)){
    16             if (!a[i]){
    17                 a[i]=k;
    18                 ans+=t;
    19                 return;
    20             }
    21             k^=a[i];
    22         }
    23 }
    24 int main(){
    25     scanf("%d",&n);
    26     for(int i=1;i<=n;i++)scanf("%lld%d",&b[i].id,&b[i].k);
    27     sort(b+1,b+n+1);
    28     for(int i=1;i<=n;i++)add(b[i].id,b[i].k);
    29     printf("%d",ans);
    30 }
    View Code
  • 相关阅读:
    清单
    1
    s
    模块系统的演进
    改radio样式
    前端css库
    疑惑
    收藏
    事件
    社保档案
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11280233.html
Copyright © 2011-2022 走看看