#13122. 珅泽教育CSP-J第一轮模拟考第二十九套 第 23 题

珅泽教育CSP-J第一轮模拟考第二十九套 第 23 题

二、程序阅读题(第 16—18 大题,共 18 个小题,40 分)

程序阅读(和等于异或的子数组计数)

#include <bits/stdc++.h>
using namespace std;

const int N = 2e5 + 10;
long long a[N], s[N], x[N];

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        scanf("%lld", &a[i]);
        s[i] = s[i - 1] + a[i];
        x[i] = x[i - 1] ^ a[i];
    }
    long long ans = 0;
    int L = 1, R = 1;
    for (; R <= n; R++) {
        while (L <= R && (s[R] - s[L - 1]) != (x[R] ^ x[L - 1])) L++;
        if (L > n) break;
        ans += R - L + 1;
    }
    cout << ans;
    return 0;
}

将第 16 行代码中的 R=1 改为 R=0,程序运行结果改变。

{{ select(1) }}

  • 正确
  • 错误