Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct segmenttree{
- int val[maxn*8];
- void maketree(int cur,int LB,int RB){
- if (LB == RB) val[cur] = arr[LB];
- else{
- maketree(cur*2,LB,mid);
- maketree(cur*2+1,mid+1,RB);
- val[cur] = val[cur*2] ^ val[cur*2+1];
- }
- }
- int query(int l,int r,int cur,int LB,int RB){
- if (l == LB and r == RB) return val[cur];
- else if (r <= mid) return query(l,r,cur*2,LB,mid);
- else if (l > mid) return query(l,r,cur*2+1,mid+1,RB);
- else return query(l,mid,cur*2,LB,mid) ^ query(mid+1,r,cur*2+1,mid+1,RB);
- }
- void mdf(int t,int v,int cur,int LB,int RB){
- if (LB == RB){
- val[cur] = v;
- }
- else{
- if (t <= mid) mdf(t,v,cur*2,LB,mid);
- else mdf(t,v,cur*2+1,mid+1,RB);
- val[cur] = val[cur*2] ^ val[cur*2+1];
- }
- }
- };
Add Comment
Please, Sign In to add comment