• AtCoder Regular Contest 135


    C - XOR to All:

    假设进行的操作是x,y。经过第一次操作y = y ^ x。

    然后到了第二次操作就变成了(y ^ x),因为所有的数都已经^ x。那么就变成了^y。

    所有这两次操作就相当于在原来的序列上^y。

    所以可以发现对于多次操作之后,异或上的数永远都是最后一个,那么显然只要异或一个数求最大值即可。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef pair<int,int> pii;
    const int N = 1e6 + 5;
    const int M = 1e7 + 5;
    const LL Mod = 998244353;
    #define rep(at,am,as) for(int at = am;at <= as;++at)
    #define INF 1e10
    #define dbg(ax) cout << "now this num is " << ax << endl;
    inline long long ADD(long long x,long long y) {
        if(x + y < 0) return ((x + y) % Mod + Mod) % Mod;
        return (x + y) % Mod;
    }
    inline long long MUL(long long x,long long y) {
        if(x * y < 0) return ((x * y) % Mod + Mod) % Mod;
        return x * y % Mod;
    }
    inline long long DEC(long long x,long long y) {
        if(x - y < 0) return (x - y + Mod) % Mod;
        return (x - y) % Mod;
    }
    
    int n,a[N],bit[30];
    void solve() {
        cin >> n;
        LL ans = 0;
        rep(i,1,n) {
            cin >> a[i],ans += a[i];
            rep(j,0,29) {
                if((a[i] >> j) & 1) bit[j]++;
            }
        }
        rep(i,1,n) {
            LL sum = 0;
            rep(j,0,29) {
                int g = (a[i] >> j) & 1;
                if(g == 1) {
                    sum += 1LL * (n - bit[j]) * (1 << j);
                }
                else {
                    sum += 1LL * bit[j] * (1 << j);
                }
            }
            ans = max(ans,sum);
        }
        printf("%lld\n",ans);
    }   
    int main() {
        // int _;
        // for(scanf("%d",&_);_;_--) {
            solve();
        //}
       // system("pause");
        return 0;
    }
    View Code
  • 相关阅读:
    数组和json的相互转换
    cocoapods安装完第三方类库后不生成workspace
    CoreDataManager-OC版-兼容iOS10以前的版本
    CoreDataManager-Swift版-兼容iOS10以前的版本
    画虚线
    YYText-显示富文本
    删除项目中的CocoaPods
    CocoaPods的安装
    CocoaPods常用终端命令及Profile文件简单介绍
    根据字符串生成类---类的类型.self---根据字符串创建控制器对象
  • 原文地址:https://www.cnblogs.com/zwjzwj/p/15835680.html
Copyright © 2020-2023  润新知