小手,能帮我翻译一下面筋哥终于对这首歌下手了吗

题意:有n个数和m次询问每一询問会有一个L和R,表示所询问的区间问在这个区间中有多少个连续的子区间的亦或和等于k。

思路:首先说一下需要用到的异或的性质:

那麼我们预处理前缀异或和的结果为什么这样做呢,比如给你一个区间[l, r]a[ ]数组代表前缀异或和,根据异或性质1a[l-1] ^ a[r],就是区间[l, r]的异或和x根據性质1如果x^k为0则x = k就符合条件,我们再开一个flag[]数组统计x=k的个数我们把所有符合条件的子区间累加就是整个区间的答案。注意由于flag存的是异戓的结果所以要适当开大点。 


  

我要回帖

更多关于 面筋哥终于对这首歌下手了 的文章

 

随机推荐