CF1479D 小计
*2900
牛逼题。
解法 \(1\)
无脑树上莫队,再套个值域分块,能过,时间复杂度 \(O(n^{1.5})\),但是不讨论此算法。
解法 \(2\)
树上询问我们很想使用主席树处理异或。
但是我们不知道怎么搞到一个区间值域内的只出现一次的数。
用 bitset 不合理。
这个时候,就出现的一种新思想。
异或哈希
我们只关心区间内是否有出现 \(1\)。
换句话说,我们只想知道有没有出现 \(1\) 。
这就是看两个区间是否完全相同。
这样的话,我们可以使用异或哈希操作。
两个区间完全相同,当且仅当这两个区间哈希值异或为 \(0\) 。
其实这就是和哈希的思想,但是异或哈希更好写一点。
然后后面随便在主席树上二分一下就好了,时间复杂度 \(O(n\log^2 n)\)