细节处理实在太重要了。

#include<cstdio>
#include<cstring>
#define MT 65533*4
#define Maxn MT*4
int i,x,y,now,k;
int xo[Maxn],e[Maxn],pd[MT];
char a,b,c;
inline void work(int k,int rt){
if(k<2){
xo[rt]=0;
e[rt]=k;
}else{
if(e[rt]>-1)
e[rt]^=1;
else
xo[rt]^=1;
}
}
void PushDown(int rt){
if(e[rt]>-1){
e[rt*2+1]=e[rt*2]=e[rt];
e[rt]=-1;
}
else{
if(e[rt*2]>-1) {e[rt*2]^=xo[rt]; xo[rt*2]=0;}
else xo[rt*2]^=xo[rt];
if(e[rt*2+1]>-1) {e[rt*2+1]^=xo[rt];xo[rt*2+1]=0;}
else xo[rt*2+1]^=xo[rt];
}
xo[rt]=0;
}
void ins(int k,int x,int y,int l,int r,int rt){
if(x<=l&&y>=r){
work(k,rt);
return;
}
PushDown(rt);
int m=(l+r)/2;
if(x<=m) ins(k,x,y,l,m,rt*2);
if(y>m) ins(k,x,y,m+1,r,rt*2+1);
}
void query(int l,int r,int rt){
if(e[rt]==1) {
for(int i=l;i<=r;i++)
pd[i]=1;
return;
}
if(e[rt]==0) return;
if(l>=r) return;
PushDown(rt);
int m=(l+r)/2;
query(l,m,rt*2);
query(m+1,r,rt*2+1);
}
int main()
{
while(scanf("%c %c%d,%d%c\n",&a,&b,&x,&y,&c)!=EOF){
if(b=='[') x=2*x; else x=2*x+1;
if(c==']') y=2*y; else y=2*y-1;
switch (a){
case 'U':
ins(1,x,y,0,MT,1);
break;
case 'I':
ins(0,0,x-1,0,MT,1);
ins(0,y+1,MT,0,MT,1);
break;
case 'D':
ins(0,x,y,0,MT,1);
break;
case 'C':
ins(0,0,x-1,0,MT,1);
ins(0,y+1,MT,0,MT,1);
ins(2,x,y,0,MT,1);
break;
case 'S':
ins(2,x,y,0,MT,1);
break;
}
}
query(0,MT,1);
k=0;
for(i=0;i<MT;i++)
if(1==pd[i]){
if(0==i||pd[i-1]==0){
if(i%2==0) printf("[%d",i/2);
else printf("(%d",(i-1)/2);
}
if(MT-1==i||pd[i+1]==0){
if(i%2==0) printf(",%d] ",i/2);
else printf(",%d) ",(i+1)/2);
}
k=1;
}
if(!k) printf("empty set\n");
return 0;
}

poj3225 线段树区间操作 (见鬼)的更多相关文章

  1. poj3225(线段树区间更新&hash)

    题目链接: http://poj.org/problem?id=3225 题意: 初始给一个全局为 0~65536 的区间  s, 然后不断地对区间 s 进行 并, 交, 差, 相对差等运算, 输出最 ...

  2. Bzoj 1798: [Ahoi2009]Seq 维护序列seq(线段树区间操作)

    1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小可 ...

  3. POJ 2528 ——Mayor's posters(线段树+区间操作)

    Time limit 1000 ms Memory limit 65536 kB Description The citizens of Bytetown, AB, could not stand t ...

  4. 线段树(区间操作) POJ 3325 Help with Intervals

    题目传送门 题意:四种集合的操作,对应区间的01,问最后存在集合存在的区间. 分析:U T [l, r]填充1; I T [0, l), (r, N]填充0; D T [l, r]填充0; C T[0 ...

  5. POJ 3225 Help with Intervals --线段树区间操作

    题意:给你一些区间操作,让你输出最后得出的区间. 解法:区间操作的经典题,借鉴了网上的倍增算法,每次将区间乘以2,然后根据区间开闭情况做微调,这样可以有效处理开闭区间问题. 线段树维护两个值: cov ...

  6. HDU - 6315(2018 Multi-University Training Contest 2) Naive Operations (线段树区间操作)

    http://acm.hdu.edu.cn/showproblem.php?pid=6315 题意 a数组初始全为0,b数组为1-n的一个排列.q次操作,一种操作add给a[l...r]加1,另一种操 ...

  7. HDU 4578——Transformation——————【线段树区间操作、确定操作顺序】

    Transformation Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 65535/65536 K (Java/Others)T ...

  8. 吉首大学校赛 K 白山茶与红玫瑰 (线段树区间操作)

    链接:https://ac.nowcoder.com/acm/contest/925/K来源:牛客网 题目描述 公元2019年6月22日,白山茶王国与红玫瑰王国展开大战,在世外仙境——天空花园处,双方 ...

  9. COJ 1010 WZJ的数据结构(十) 线段树区间操作

    传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=1001 WZJ的数据结构(十) 难度级别:D: 运行时间限制:3000ms: ...

随机推荐

  1. DIV当textarea使用,在聚焦的时候将光标移动到内容的末尾

    #### DIV当textarea使用,在聚焦的时候将光标移动到内容的末尾 #### <style type="text/css"> .test_box { width ...

  2. Spark Streaming揭秘 Day3-运行基石(JobScheduler)大揭秘

    Spark Streaming揭秘 Day3 运行基石(JobScheduler)大揭秘 引子 作为一个非常强大框架,Spark Streaming兼具了流处理和批处理的特点.还记得第一天的谜团么,众 ...

  3. 在MVVMLight框架的ViewModel中实现NavigationService

    网上已经有很多方法了,比如通过Messenger来实现等等.这里我只讲述一种我比较喜欢的方法,因为它很方便 首先定义一个ViewModel基类,将所有ViewModel子类继承这个基类.在基类中定义 ...

  4. 备份了一个nginx的虚拟主机配置文件报错

    [root@localhost vhost]# service nginx restart 停止 nginx:[确定] 正在启动 nginx:nginx: [warn] conflicting ser ...

  5. c#教程之事件处理函数的参数

    事件处理函数一般有两个参数,第一个参数(object sender)为产生该事件的对象的属性Name的值,例如上例单击标题为红色的按钮,第一个参数sender的值为button1.如上例标题为红色的按 ...

  6. EXTJS 4.2 资料 控件lable定义

    代码: { xtype:'label', id:'label', labelSeparator :'', // 去掉laebl中的冒号 fieldLabel : '这是个label' } 赋值: Ex ...

  7. Lua基础之coroutine(协程)

    概括:1.创建协程2.coroutine的函数3.coroutine的基本流程4.yield对coroutine流程的干预5.resume, function()以及yield之间的参数传递和返回值传 ...

  8. Xcode文档下载与安装路径

    https://developer.apple.com/library/downloads/docset-index.dvtdownloadableindex ~/Library/Developer/ ...

  9. 结构体 typedef关键字

    1 结构体 #include <iostream> #include <cstring> using namespace std; void printBook( struct ...

  10. @Entity设置实体lazy = false

    问题描述 在通过Hibernate查询Bean信息时报以下异常信息: org.hibernate.LazyInitializationException: could not initialize p ...