![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
XOR
悭吝韶华
在学习Unity和图形学.
展开
-
E. XOR and Favorite Number(莫队算法+异或前缀和)
传送门 1.处理出异或前缀和数组a[i]^=a[i-1]; 2.对于区间[L,R]的异或和,即为a[R]^a[L-1] 3.如果x ^ y=k,那么x=k ^ y 对于一个区间[L,R],我们维护[L-1,R]的异或前缀和. 当加入新元素时a[x],如果在我们维护的前缀和里存在a[x]^k,那么就会对答案产生贡献. ##注意这个题左端点是L-1,这是关键!## #include<bits/stdc++.h> using namespace std; #define ll long long #d原创 2020-07-31 19:54:27 · 201 阅读 · 0 评论 -
E. XOR on Segment(线段树+XOR)
按每一个二进制位拆成20棵线段树即可. 所以对于每颗线段树iii,我们关心的都只有一位,即二进制第iii位上是否有1. 线段树节点上维护一个cnt,表明这个线段内在该位上1的个数. lazy标记维护0或1,向下传递时1表明会改变子线段的cnt,即cnt=len-cnt. 传送门 #include<bits/stdc++.h> using namespace std; #define ll long long #define MAXN 100002 #define fore(n) for(int原创 2020-07-31 16:16:36 · 328 阅读 · 0 评论