zoukankan      html  css  js  c++  java
  • 2460: [BeiJing2011]元素

    2460: [BeiJing2011]元素

    链接

    分析:

      贪心的想:首先按权值排序,然后从大到小依次放,能放则放。然后用线性基维护是否合法。

    代码:

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<iostream>
    #include<cmath>
    #include<cctype>
    #include<set>
    #include<queue>
    #include<vector>
    #include<map>
    #define pa pair<int,LL>
    using namespace std;
    typedef long long LL;
    
    inline LL read() {
        LL x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
        for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';return x*f;
    }
    
    const int N = 2005;
    pa A[N];
    LL b[N];
    
    bool Insert(LL x) {
        for (int i = 60; ~i; --i) 
            if ((x >> i) & 1) {
                if (b[i]) x ^= b[i];
                else {
                    b[i] = x; 
                    return 1;
                }
            }
        return 0;
    }
    
    int main() {
        int n = read();
        for (int i = 1; i <= n; ++i) 
            A[i].second = read(), A[i].first = read();
        sort(A + 1, A + n + 1);
        LL Ans = 0;
        for (int i = n; i >= 1; --i) 
            if (Insert(A[i].second)) Ans += A[i].first;
        cout << Ans;
        return 0;
    }
  • 相关阅读:
    vue路由学习
    vue组件学习
    Vue常用特性
    Vue入门常用指令
    ES6新增语法
    如何搭建一个vue项目(完整步骤)
    OA办公系统
    java有序数组的有序交集
    javascript输出数据到文件
    node js 实现文件上传与反显
  • 原文地址:https://www.cnblogs.com/mjtcn/p/10375806.html
Copyright © 2011-2022 走看看