Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

帮我看下为什么RE实在看不出来了

Posted by skythought at 2007-08-31 14:26:16 on Problem 2777
#include <stdio.h>
#include <string.h>

struct tree
{
	int left,right;
	int dif;         //每一位代表一种颜色
	tree * lchild,* rchild;
	void construct(int l,int r);
	void update(int l,int r,int c);
	int cal(int l,int r);
}stree[500001],*root=&stree[0];
int len;
int L,T,N;

void tree::construct(int l,int r)
{
	left=l; right=r;
	dif=1;
	if(l==r)  lchild=rchild=NULL ;
	else
	{
		lchild=&stree[len++];
		rchild=&stree[len++];
		int mid=(l+r)>>1;
		lchild->construct(l,mid);
		rchild->construct(mid+1,r);
	}
}

void tree::update(int l,int r,int c)
{
	if(lchild&&r<=lchild->right)
		lchild->update(l,r,c);
	else if(rchild&&l>=rchild->left)
		rchild->update(l,r,c);
	else if(lchild&&rchild)
	{
		lchild->update(l,lchild->right,c);
		rchild->update(rchild->left,r,c);
	}
	if(lchild==NULL&&rchild==NULL)
	{
		dif=1<<(c-1);
	}
	else  if(lchild&&rchild)
	{
		dif=(lchild->dif)|(rchild->dif);
	}
}


int tree::cal(int l,int r)
{
	if(l==left&&r==right)
		return dif;
	else
	{
		 if(r<=lchild->right)
			 return lchild->cal(l,r);
		 else if(l>=rchild->left)
			 return rchild->cal(l,r);
		 else
		 {
				 return (lchild->cal(l,lchild->right))|(rchild->cal(rchild->left,r));
		 }
	}
}

int main()
{
	char com[4];
	int x,y,c;
	int i;

	while (scanf("%d%d%d",&L,&T,&N)==3)
	{
		len=1;
		root->construct(1,L);
	
		for (i=0;i<N;i++)
		{
			scanf("%s",com);
			if(strcmp(com,"C")==0)
			{
				scanf("%d%d%d",&x,&y,&c);
				root->update(x,y,c);
			}
			else
			{
				scanf("%d%d",&x,&y);
				int kind=(root->cal(x,y));
				int count=0;
				while (kind)
				{
					if(kind%2)
						count++;
					kind>>=1;
				}
				printf("%d\n",count);
			}
		}

	}
	return 0;
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator