zoukankan      html  css  js  c++  java
  • BZOJ 2460: [BeiJing2011]元素 线性基+贪心

    将所有元素按照魔法值从大到小排序,然后依次试着往线性基里插入就完事了. 

    #include <cstdio> 
    #include <algorithm> 
    #define N 2000  
    #define M 62    
    #define ll long long 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std;  
    int n; 
    ll d[N];   
    struct Node 
    {
        ll val,magic; 
        Node(ll val=0,ll magic=0):val(val),magic(magic){}   
    }e[N];   
    bool cmp(Node a,Node b) 
    {
        return a.magic>b.magic; 
    }
    int main() 
    { 
        ll re=0; 
        int i,j; 
        // setIO("input");  
        scanf("%d",&n); 
        for(i=1;i<=n;++i) scanf("%lld%lld",&e[i].val,&e[i].magic);   
        sort(e+1,e+1+n,cmp);     
        for(i=1;i<=n;++i) 
        {
            ll x=e[i].val,y=e[i].magic;        
            for(j=M;j>=0;--j) 
            { 
                if(x&(1ll<<j)) 
                {
                    if(d[j]) x^=d[j]; 
                    else 
                    {
                        d[j]=x; 
                        re+=y;         
                        break; 
                    }
                }
            }
        } 
        printf("%lld
    ",re);   
        return 0; 
    } 
    

      

  • 相关阅读:
    C#开发微信门户及应用(6)--微信门户菜单的管理操作
    C#开发微信门户及应用(5)--用户分组信息管理
    Django
    Django
    Django
    Django
    Django
    Django
    6.1
    Django
  • 原文地址:https://www.cnblogs.com/guangheli/p/11533882.html
Copyright © 2011-2022 走看看