标签:还需要 UI 分享 pre freopen memset sed splay 二进制
Description
Input
Output
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define lson l,m,rt<<1 6 #define rson m+1,r,rt<<1|1 7 const int MAXN=100010; 8 int cnt[MAXN<<2]; 9 int lazy[MAXN<<2]; 10 11 void pushup(int rt) 12 { 13 cnt[rt]=cnt[rt<<1]|cnt[rt<<1|1]; 14 // printf("cnt=%d %d %d %d\n",cnt[rt],cnt[rt<<1],cnt[rt<<1|1],rt<<1|1); 15 } 16 void pushdown(int rt) 17 { 18 if(lazy[rt]) 19 { 20 cnt[rt<<1]=cnt[rt]; 21 cnt[rt<<1|1]=cnt[rt]; 22 lazy[rt<<1]=1; 23 lazy[rt<<1|1]=1; 24 lazy[rt]=0; 25 } 26 } 27 int query(int a,int b,int l,int r,int rt) 28 { 29 // printf("a\n"); 30 //printf("query %d %d %d %d %d\n",a,b,l,r,rt); 31 if(a<=l&&b>=r) return cnt[rt]; 32 pushdown(rt); 33 int t1=0,t2=0; 34 int m=(r+l)>>1; 35 if(a<=m) t1=query(a,b,lson); 36 if(b>m) t2=query(a,b,rson); 37 // printf("query %d %d %d %d %d t1=%d t2=%d\n",a,b,l,r,rt,t1,t2); 38 return t1|t2; 39 } 40 41 void update(int a,int b,int c,int l,int r,int rt) 42 { 43 // printf("update %d %d %d %d %d %d\n",a,b,c,l,r,rt); 44 if(a<=l&&b>=r) 45 { 46 cnt[rt]=1<<(c-1); 47 lazy[rt]=1; 48 // printf("cnt=%d l=%d r=%d c=%d\n",cnt[rt],l,r,c); 49 return; 50 } 51 pushdown(rt); 52 int m=(l+r)>>1; 53 if(a<=m) update(a,b,c,lson); 54 if(b>m) update(a,b,c,rson); 55 pushup(rt); 56 } 57 int main() 58 { 59 // freopen("in.txt","r",stdin); 60 // freopen("out.txt","w",stdout); 61 int len,numtype,oper,a,b,c,tmp,t,ans; 62 char type; 63 scanf("%d%d%d",&len,&numtype,&oper); 64 for(int i=0;i<MAXN<<2;i++) 65 { 66 cnt[i]=1; 67 } 68 memset(lazy,0,sizeof(lazy)); 69 for(int i=1;i<=oper;i++) 70 { 71 char type[2]; 72 scanf("%s",type); 73 // printf("%c\n",type[0]); 74 if(type[0]==‘C‘) 75 { 76 scanf("%d%d%d",&a,&b,&c); 77 if(a>b) 78 { 79 t=a;a=b;b=t; 80 } 81 update(a,b,c,1,len,1); 82 } 83 else 84 { 85 scanf("%d%d",&a,&b); 86 if(a>b) 87 { 88 t=a;a=b;b=t; 89 } 90 tmp=query(a,b,1,len,1); 91 for(ans=0;tmp>=1;tmp>>=1) 92 { 93 // printf("tmp=%d\n",tmp); 94 if(tmp&1) ans++; 95 } 96 printf("%d\n",ans); 97 } 98 } 99 return 0; 100 }
标签:还需要 UI 分享 pre freopen memset sed splay 二进制
原文地址:http://www.cnblogs.com/zhixingr/p/6916872.html