P13683 【MX-X16-T1】「DLESS-3」XOR and Greater Sum

· · 题解

读完题面,我们不难发现,它是让我们判断有没有一个子区间的异或和是大于剩下区间的异或和的,我们就把这些数全都选上,如果大于剩下区间的异或和的话(也就是零),那么就证明它符合条件,输出 Yes,否则输出 No。

代码实现:


#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;

int sum,n,t,ans,a[N];

int main () {

    cin >> t;

    while (t --) {

        cin >> n;

        for (int i = 1;i <= n;i ++) {
            cin >> a[i];
            sum = sum ^ a[i];
        }

        if (sum > 0) {
            cout << "Yes" << '\n';
        } else {
            cout << "No" << '\n';
        }
        sum = 0;
    }
    return 0;
}