博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【codeforces 242E】XOR on Segment
阅读量:6333 次
发布时间:2019-06-22

本文共 1992 字,大约阅读时间需要 6 分钟。

【原题题面】

【题面翻译】

【解题思路】

操作涉及到区间求和和区间异或,考虑到异或操作,我们对每个数二进制分解。

把每一位单独提出来做,异或要么取反要么变为不变,对于每一位建一颗线段树,那么原题中的信息维护就相当于:

1.区间取反

2.区间求和

那就打标记传标记好了。。

【code】

#include
using namespace std;const int N=100010;int n,q,abt,x,y,z;int a[25][N];int d[25][N<<2];long long t[25][N<<2],ans;inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0'; ch=getchar();} return x*f;}#define ls p<<1#define rs p<<1|1inline void B(int l,int r,int p,int k){ if(l==r){t[k][p]=a[k][l];return;} int m=l+r>>1; B(l,m,ls,k),B(m+1,r,rs,k); t[k][p]=t[k][ls]+t[k][rs];}inline void U(int l,int r,int p,int k){ if(x<=l&&r<=y){t[k][p]=(r-l+1)-t[k][p],d[k][p]^=1;return;} int m=l+r>>1; if(d[k][p]) { t[k][ls]=(m-l+1)-t[k][ls],d[k][ls]^=1; t[k][rs]=(r-m)-t[k][rs],d[k][rs]^=1; d[k][p]=0; } if(x<=m)U(l,m,ls,k); if(y>m)U(m+1,r,rs,k); t[k][p]=t[k][ls]+t[k][rs];}inline long long A(int l,int r,int p,int k){ if(x<=l&&r<=y)return t[k][p]; int m=l+r>>1; if(d[k][p]) { t[k][ls]=(m-l+1)-t[k][ls],d[k][ls]^=1; t[k][rs]=(r-m)-t[k][rs],d[k][rs]^=1; d[k][p]=0; } long long as=0; if(x<=m)as+=A(l,m,ls,k); if(y>m)as+=A(m+1,r,rs,k); return as;}int main(){ n=read(); for(int i=1;i<=n;++i) { z=read(); for(int j=1;j<=22;++j) { if(z&1)a[j][i]=1; z>>=1; } } for(int i=1;i<=22;++i)B(1,n,1,i); q=read(); for(int i=1;i<=q;++i) { abt=read(),x=read(),y=read(); if(abt==1) { ans=0; for(int j=22;j;--j)ans=ans*2+A(1,n,1,j); printf("%lld\n",ans); } else { z=read(); for(int j=1;j<=22;++j) { if(z&1)U(1,n,1,j); z>>=1; } } } return 0;}
View Code

 

转载于:https://www.cnblogs.com/ve-2021/p/10433682.html

你可能感兴趣的文章
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>
25G DAC无源高速线缆和25G光模块之间的区别
查看>>
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
Java面试笔试题大汇总一(最全+详细答案)
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>