mt19937_64 rd(time(0));
void solve() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n + 1);
    map<int, ull> mp;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        mp[a[i]] = 0;
    }

    for (auto &[x, y] : mp) {
        y = rd();
    }

    vector<ull> h(n + 1);
    for (int i = 1; i <= n; i++) {
        h[i] = h[i - 1] ^ mp[a[i]];
    }

    while (m--) {
        int l, r;
        cin >> l >> r;
        cout << ((h[r] ^ h[l - 1]) ? "No\n" : "Yes\n");
    }
}

0 条评论

目前还没有评论...

信息

ID
414
时间
ms
内存
MiB
难度
7
标签
递交数
43
已通过
12
上传者