日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CF617E XOR and Favorite Number

發(fā)布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CF617E XOR and Favorite Number 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CF617E XOR and Favorite Number

已知一個序列 \(a_1,\ a_2,\ \cdots,\ a_n\)\(k\)\(m\) 次詢問給出 \(l,\ r\) ,求 \(\displaystyle\sum_{i=l}^r\sum_{j=i}^r[a_x\oplus a_{x+1}\oplus \cdots \oplus a_y=k]\)

\(n,\ m\leq10^5,\ 0\leq a_i,\ k\leq10^6\)

莫隊


重題 bzoj5301 [CQOI2018]異或序列

考慮維護(hù)一個異或前綴和,問題就轉(zhuǎn)化為了:區(qū)間 \([l-1,\ r]\) 中,有多少對數(shù)異或和為 \(k\)。莫隊開桶記錄即可

注意數(shù)組空間大小以及 \(long\ long\)

時間復(fù)雜度 \(O(n\sqrt n)\)

#include <bits/stdc++.h> using namespace std;typedef long long ll; const int maxn = 1e5 + 10; int n, m, k, sz, a[maxn], bl[maxn], cnt[maxn * 20]; ll now, ans[maxn]; struct node {int l, r, tid;bool operator < (const node& o) const {return bl[l] != bl[o.l] ? l < o.l : r > o.r;} } q[maxn];void add(int x) { now += cnt[x ^ k], cnt[x]++; } void del(int x) { cnt[x]--, now -= cnt[x ^ k]; }int main() {scanf("%d %d %d", &n, &m, &k), sz = sqrt(n);for (int i = 1; i <= n; i++) {scanf("%d", a + i), a[i] ^= a[i - 1], bl[i] = (i - 1) / sz + 1;}for (int i = 1; i <= m; i++) {scanf("%d %d", &q[i].l, &q[i].r), q[i].l--, q[i].tid = i;}sort(q + 1, q + m + 1);int l = 0, r = -1;for (int i = 1; i <= m; i++) {while (q[i].l < l) add(a[--l]);while (q[i].r > r) add(a[++r]);while (q[i].l > l) del(a[l++]);while (q[i].r < r) del(a[r--]);ans[q[i].tid] = now;}for (int i = 1; i <= m; i++) {printf("%I64d\n", ans[i]);}return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/Juanzhang/p/10345401.html

總結(jié)

以上是生活随笔為你收集整理的CF617E XOR and Favorite Number的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。