Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Why wrong ??????????????#include<iostream> #include<algorithm> #include<string> using namespace std; struct node { int l,r,col; int lch,rch; }way[400000]; int top; void build(int cnt,int left,int right) { int mid; way[cnt].l=left,way[cnt].r=right; way[cnt].col=1; if(left==right) return ; mid=(left+right)>>1; way[cnt].lch=++top; build(top,left,mid); way[cnt].rch=++top; build(top,mid+1,right); } int single(int a) { return a&(a-1)==0; } void setcolour(int cnt,int left,int right,int colour) { if(left<way[cnt].l) left=way[cnt].l; if(right>way[cnt].r) right=way[cnt].r; if(left>right) return ; if(way[cnt].l==left&&way[cnt].r==right) { way[cnt].col=colour; return ; } if(way[cnt].col==colour) return ; if(single(way[cnt].col)) { way[way[cnt].lch].col=way[cnt].col; way[way[cnt].rch].col=way[cnt].col; } setcolour(way[cnt].lch,left,right,colour); setcolour(way[cnt].rch,left,right,colour); way[cnt].col=way[way[cnt].lch].col|way[way[cnt].rch].col; } int getcolour(int cnt,int left,int right) { int colour=0; if(left<way[cnt].l) left=way[cnt].l; if(right>way[cnt].r) right=way[cnt].r; if(left>right) return 0; if(left==way[cnt].l&&right==way[cnt].r) return way[cnt].col; colour|=getcolour(way[cnt].lch,left,right); colour|=getcolour(way[cnt].rch,left,right); return colour; } int calcolor(int cnt) { int ans=0; while(cnt>0) { ans+=cnt%2; cnt/=2; } return ans; } int main() { int L,T,O,left,right,colour,i,ans; char AC; scanf("%d %d %d",&L,&T,&O); top=0; build(0,1,L); for(i=0;i<O;i++) { scanf(" %c",&AC); if(AC=='C') { scanf("%d %d %d",&left,&right,&colour); if(left>right) swap(left,right); setcolour(0,left,right,1<<(colour-1)); } else { scanf("%d %d",&left,&right); if(left>right) swap(left,right); ans=getcolour(0,left,right); printf("%d\n",calcolor(ans)); } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator