60pts,WA求助
查看原帖
60pts,WA求助
424534
封禁用户楼主2022/7/18 08:36

60pts记录

CodeCode

#include <bits/stdc++.h>
#define ULL unsigned long long

using namespace std;

const int N = 35, M = 1 << 15;

ULL w[N];
ULL f[M], g[M];

int lowbit(int x)
{
    return x & -x;
}

int main()
{
    int n;
    scanf("%d", &n);
    
    for (int i = 0; i < n; i ++ )
        cin >> w[i];
        
    for (int i = 1; i < (1 << (n / 2)); i ++ )
    {
        int t = log2(lowbit(i));
        f[i] = f[i - lowbit(i)] ^ w[t];
        g[i] = g[i - lowbit(i)] ^ w[t + n / 2];
    }
    
    ULL res = 0;
    for (ULL i = 1; i < (1 << n); i ++ )
    {
        ULL Xor = (f[i & ((1 << (n / 2)) - 1)] ^ g[i >> (n / 2)]) * i;
        res ^= Xor;
    }
    
    cout << res;
    
    return 0;
}
2022/7/18 08:36
加载中...