题解:CF617E XOR and Favorite Number & [CQOI2018] 异或序列

莫队助我薄纱 CF *2200

洛谷链接似乎方便一点。

CF617E

[CQOI2018] 异或序列

做法

下文前缀和等概念皆是指异或。

连续子段和,很常用的一个简化套路是求前缀和 \(s_i\),然后问题可以被转化为:每次询问一个区间 \([l,r]\),问区间内有多少点对 \((s_i,s_j)(i>j)\) 使得 \(s_i \oplus s_j=k\),静态区间查询考虑莫队,然后发现莫队不能直接做,一个点 \(s_i\) 的贡献不能直接算,首先你可以拿一个 01 Trie 直接做,是 \(O(n \sqrt{n} \log n)\) 的,会带一个 \(\log\),然后稍微思考发现对于任意一个 \(s_i\),能与其异或出 \(k\) 的值是一定的,稍微转变发现这个值就是 \(s_i \oplus k\),值域较小甚至不用离散化,开个桶直接做就行。

CODE

this

posted @ 2025-09-12 21:17  Cefgskol  阅读(4)  评论(0)    收藏  举报