编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#114707 #1162. 异或 Compile Error 0 0 ms 0 K C++ 17 / 1.6 K iNx 2024-08-12 15:00:55
显示原始代码
#include <iostream>
#include <vector>
#include <map>
#include <cmath>
#include <set>

// #define int long long

using namespace std;
using ll = long long;

constexpr int MAX_N = 3e5 + 7;

int bit[MAX_N];

int n, m;

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

void update(int x, int y) {
    for (; x <= n; x += lowbit(x)) bit[x] ^= y;
}

int get(int x) {
    int res = 0;
    for (; x > 0; x -= lowbit(x)) res ^= bit[x];
    return res;
}

struct Node {
    int l, r, idx;

    Node(int _l = 0, int _r = 0, int _idx = 0) : l(_l), r(_r), idx(_idx) {}

    bool operator<(const Node &u) const {
        if (r < u.r)
            return true;
        if (r > u.r)
            return false;
        return l < u.l;
    }
};

signed main() {
    ios::sync_with_stdio(false);
    cin >> n;
    vector<int> a(n), s(n + 1, 0);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        s[i + 1] = a[i] ^ s[i];
    }
    vector<Node> qs;
    cin >> m;
    for (int i = 0; i < m; i++) {
        int l, r;
        cin >> l >> r;
        --l;
        qs.emplace_back(l, r, i);
    }
    sort(qs.begin(), qs.end());
    vector<int> ans(m);
    int i = 0;
    map<int, int> mp;
    for (auto [l, r, idx] : qs) {
        while (i < n && i < r) {
            if (mp.count(a[i])) {
                update(mp[a[i]], a[i]);
            }
            mp[a[i]] = i + 1;
            update(i + 1, a[i]);
            i++;
        }
        ans[idx] = get(r) ^ get(l) ^ s[r] ^ s[l];
    }
    for (int i = 0; i < m; i++) {
        cout << ans[i] << "\n";
    }
    return 0;
}

编译信息

/sandbox/1/a.cpp: In function 'int main()':
/sandbox/1/a.cpp:56:5: error: 'sort' was not declared in this scope; did you mean 'qsort'?
   56 |     sort(qs.begin(), qs.end());
      |     ^~~~
      |     qsort