最 大 异 或 和 最大异或和 最大异或和
题目解析
Code
#include <cstdio>
#include <iostream>
#define ll long long
using namespace std;int n;
ll sum, ans, x, f[40];int main ()
{scanf ("%d", &n);f[0] = 1;for (int i = 1; i <= 30; ++ i)f[i] = f[i - 1] * 2;for (int i = 1; i <= n; ++ i){scanf ("%lld", &x);sum = 0;for (int j = 30; j >= 0; j--)if (f[j] && sum + f[j] <= x){sum += f[j];f[j] = 0;}ans += sum;} printf ("%lld", ans);return 0;
}