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

WA至死,。。。。。。。。。。。已经死了,菜鸟求助。

Posted by gxlzlihao at 2010-03-11 23:06:38 on Problem 2492
用一个二维数组edge记录连线,从小的点指向大的点。然后再对数组进行操作,一组和0合并,一组和2001合并。并判断是否有gay,用一个result数组记录每组数据的结果。

#include<iostream>
#define MAXSIZE 2002
using namespace std;
int parent[MAXSIZE];
int countofset;
int result[1000],count;
int edge[MAXSIZE][MAXSIZE];
void clear()
{
	for(int x=0;x!=MAXSIZE;++x)
		for(int y=0;y!=MAXSIZE;++y)
			edge[x][y]=0;
	parent[0]=0;
	for(int i=0;i!=MAXSIZE;++i)
		parent[i]=i;
}
int findset(int x)
{
	if(x!=parent[x]) parent[x]=findset(parent[x]);
	return parent[x];
}
void unionset(int root1,int root2)
{
	int x=findset(root1);
	int y=findset(root2);
	if(x==y) return ;
	parent[root1]=root2;
}
int main()
{
	count=0;
	int N=0;
	cin>>N;
	int i=0;
	result[0]=0;
	for(i=0;i!=N;++i)
	{
		clear();
		int numberofbugs,iter,x,y;
		cin>>numberofbugs>>iter;
		countofset=numberofbugs;
		bool flag=true;
		for(int j=0;j!=iter;++j)
		{
			cin>>x>>y;
			if(x!=y)
			{
				if(x<y) edge[x][y]=1;
				else edge[y][x]=1;
			}
		}
		for(x=1;x<=numberofbugs;++x)
		{
			int sets=findset(x);
			int oppsets;
			if(sets!=0 && sets!=2001)
			{
				unionset(x,0);
				oppsets=2001;
				sets=0;
			}
			else if(sets==0)
				oppsets=2001;
			else if(sets==2001)
				oppsets=0;
			for(int y=1;y<=numberofbugs;++y)
			{
				if(edge[x][y])
				{
					if(findset(y)==sets)
						flag=false;
					else 
						unionset(y,oppsets);
				}
			}
		}
		if(flag)
			result[count++]=1;
		else
			result[count++]=0;
	}
	cout<<endl;
	for(i=0;i!=N;++i)
		if(result[i])
		{
			cout<<"Scenario #"<<i+1<<":"<<endl;
			cout<<"No suspicious bugs found!"<<endl;
			cout<<endl;
		}
		else
		{
			cout<<"Scenario #"<<i+1<<":"<<endl;
			cout<<"Suspicious bugs found!"<<endl;
			cout<<endl;
		}
	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