*Codeforces587E. Duff as a Queen

$n \leq 200000$的序列,支持以下$q \leq 4e4$个操作:区间异或$k$;查询区间能异或出多少不同的数。数字$0 \leq a_i \leq 1e9$。

大概是要区间线性基。区间修改用差分。异或也是可以差分的:$b_i=a_i \ \ xor \ \ a_i-1$,则$a_l,a_{l+1},...,a_{r}$的线性基跟$a_l,b_{l+1},...,b_{r}$的线性基一样,询问的时候取出$a_l$和$b_{l+1},...,b_r$即可。线段树维护$b_i$的区间线性基,修改时,我们差分了差分了差分了!!所以单点修改,轻松。取$a_l$的话,区间修改单点查询上个BIT即可。

 

posted @ 2018-04-23 21:46  Blue233333  阅读(226)  评论(0编辑  收藏  举报