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 dawei007 at 2010-05-05 09:27:04 on Problem 1308
In Reply To:天啦,给偶块豆腐让偶去撞死吧,大牛请来相帮 Posted by:Pzjay at 2009-10-15 16:48:25
//by David
#include "cstdlib"
#include "cctype"
#include "cstring"
#include "cstdio"
#include "cmath"
#include "algorithm"
#include "vector"
#include "string"
#include "iostream"
#include "sstream"
#include "set"
#include "queue"
#include "stack"
#include "fstream"
#include "strstream"
using namespace std;

typedef __int64 LL;		//scanf("%I64d", &x);
typedef vector<int> VI;
typedef pair<int,int> PII;
#define MP				make_pair
#define FOR(i,a)			for( int i = 0 ; i < a ; i ++ )
#define LL(a)				a<<1		//a=a*2   LL和RR主要用于线段树
#define RR(a)				a<<1|1		//a=a*2+1
const double Pi = acos(-1.0);
template<class T> inline void checkmmin(T &a,T b)	{if(a < 0 || a > b)a = b;}
template<class T> inline void checkmax(T &a,T b)	{if(a < b)	a = b;}
int dx[] = {-1,0,1,0,1,1,-1,-1};//up Right down Left
int dy[] = {0,1,0,-1,1,-1,1,-1};//复制strcpy和strncpy  //strstr查找子串;strrev对字符串反序 //strncpy后加'\0' 
//-----------------------------------------------------------------

#define N 100

int main()
{
	int a,b;
	int Case=1;
	int p[N];
	bool arr[N];
	int i,j;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		if(a==-1 && b==-1)break;
		memset(p,0,sizeof p);
		memset(arr,0,sizeof arr);
		int f=0;
		while(a||b)
		{
			if(p[b]!=0 || a==b)		f=1;
			p[b]=a;
			arr[b]=1;
			scanf("%d%d",&a,&b);
		}
		if(!f)
		{
			int r,t;
			for(r=0;r<N;r++)
				if(arr[r])
					break;
			t=r;
			while(p[r])
			{
				r=p[r];
				if(t==r)
				{f=1;break;}
			}
			for(i=0;i<N;i++)
				if(arr[i])
				{
					j=i;
					t=j;
					while(p[j])
					{
						j=p[j];	
						if(t==j)
						{f=1;break;}
					}
					if(j!=r || f==1)
					{
						f=1;break;
					}
				}
		}
		if(f)
			printf("Case %d is not a tree.\n",Case++);
		else
			printf("Case %d is a tree.\n",Case++);
	}
	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