BZOJ 1230: [Usaco2008 Nov]lites 开关灯
来源:互联网 发布:数据库系统软件 编辑:程序博客网 时间:2024/05/16 17:44
简单线段树,发现对update和pushdown要注意一下
#include<cstdio>#include<algorithm>#define inf 1000000000using namespace std;const int N=100005;int c[4*N];bool rev[4*N];void rever(int x,int l,int r){rev[x]^=1;c[x]=(r-l+1)-c[x];}void pushdown(int x,int l,int r){int lc=x<<1,rc=lc^1,mid=(l+r)>>1;if(rev[x])rev[x]=0,rever(lc,l,mid),rever(rc,mid+1,r);}void change(int x,int l,int r,int ql,int qr){pushdown(x,l,r);int mid=(l+r)>>1,lc=x<<1,rc=lc^1;if(l==ql && r==qr){rever(x,l,r); return;}if(qr<=mid) change(lc,l,mid,ql,qr);else if(ql>mid)change(rc,mid+1,r,ql,qr);elsechange(lc,l,mid,ql,mid),change(rc,mid+1,r,mid+1,qr);c[x]=c[lc]+c[rc];}int s;void query(int x,int l,int r,int ql,int qr){pushdown(x,l,r);if(l==ql && r==qr){s+=c[x]; return;}int mid=(l+r)>>1,lc=x<<1,rc=lc^1;if(qr<=mid) query(lc,l,mid,ql,qr);else if(ql>mid)query(rc,mid+1,r,ql,qr);elsequery(lc,l,mid,ql,mid),query(rc,mid+1,r,mid+1,qr);}int main(){int n,m,x,y,a;scanf("%d%d",&n,&m);while(m--){scanf("%d%d%d",&a,&x,&y);if(!a)change(1,1,n,x,y);else {s=0;query(1,1,n,x,y);printf("%d\n",s);}} return 0;}
1 0
- BZOJ 1230: [Usaco2008 Nov]lites 开关灯
- BZOJ 1230: [Usaco2008 Nov]lites 开关灯
- BZOJ 1230: [Usaco2008 Nov]lites 开关灯
- bzoj 1230: [Usaco2008 Nov]lites 开关灯
- BZOJ 1230: [Usaco2008 Nov]lites 开关灯 线段树
- 1230: [Usaco2008 Nov]lites 开关灯
- 1230: [Usaco2008 Nov]lites 开关灯
- bzoj1230[Usaco2008 Nov]lites 开关灯
- 【bzoj1230】[Usaco2008 Nov]lites 开关灯
- bzoj1230[Usaco2008 Nov]lites 开关灯 线段树lazy标记
- BZOJ 1230 Usaco2008 Nov 开关灯 线段树
- [Usaco2008 Nov]lites 开关灯 线段树 区间异或及求和操作
- 线段树——Luogu3870/BZOJ1230 [Usaco2008 Nov]lites 开关灯
- bzoj 1230 lites 开关灯 线段树巧妙应用
- 【USACO 2008 Nov Gold】 3.Light Switching(lites 开关灯) 区间修改线段树
- bzoj1230[Usaco2008 Nov]&&[TJOI2009]开关灯(线段树)
- BZOJ 1229: [USACO2008 Nov]toy 玩具
- 【BZOJ 1230】开关灯
- 魔法 -- 2016-08-15 11:49
- 关于创建String对象的抉择
- myeclipse2013 安装 activiti
- ClassLoader与类的加载
- Java笔记整理:内部类
- BZOJ 1230: [Usaco2008 Nov]lites 开关灯
- Python正则速查
- IntelliJ IDEA中快捷键一览
- 常见的三大加密算法
- 【NOIP普及组】2016年模拟考试(9.3)——笨笨玩游戏
- awk与cut在以空格为分割域时的区别
- spring中 hibernate实体类注解
- NOIP2016年普及组模拟考试(9.3) 3.笨笨连线游戏
- 向CDH5集群中添加新的主机节点