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 allen4053040allen at 2010-04-10 21:31:35 on Problem 1308
#include<iostream>

using namespace std;

#define MAX 30000

int father[MAX];

void make_set(int x)
{
	father[x] = x;
}

int find_set(int x)
{
	if(x != father[x])
		father[x] = find_set(father[x]);
	return father[x];
}

void union_set(int x, int y)      //第二个指向第一个
{
	int f1, f2;
	f1 = find_set(x), f2 = find_set(y);
	father[f2] = f1;
}

int main()
{
	int a[MAX], b[MAX];
	int ncase = 1;
	int i, temp1, temp2;
	bool visit[MAX];
	while(scanf("%d%d", &a[0], &b[0]) && a[0] != -1) {
		int m = 1;
		memset(visit, 0, sizeof(visit));
		if(a[0] == b[0] && a[0] == 0) {
			printf("Case %d is not a tree.\n", ncase ++);
			continue;
		}
		while(scanf("%d%d", &a[m], &b[m ++]) && (a[m - 1] + b[m - 1]))
			;
		for(i = 0; i < m - 1; i ++) {
			make_set(a[i]);
			make_set(b[i]);
		}
		int flag = 0;
		for(i = 0; i < m - 1; i ++) {
			//cout << find_set(a[i]) <<" " << find_set(b[i]) << endl;
			if(visit[b[i]] == 1) {
				flag = 1;
				break;
			}
			visit[b[i]] = 1;
			//cout << find_set(a[i]) <<" " << find_set(b[i]) << endl;
			if(find_set(a[i]) == find_set(b[i])) {
				flag = 1;
				break;
			}
			union_set(a[i], b[i]);	
		}
		if(flag == 1) {
			printf("Case %d is not a tree.\n", ncase ++);
			continue;
		}
		temp1 = find_set(a[0]);
		temp2 = find_set(b[0]);
		for(i = 0; i < m - 2; i ++) {     //不包括 0 0
			for(int j = i + 1; j < m - 1; j ++) {
				if(find_set(b[i]) != find_set(b[j]) || find_set(a[i]) != find_set(a[j])) {
					flag = 1;
					break;
				}
			}
			if(flag == 1)
				break;
		}
	//	for(i = 0; i < m - 1; i ++)
	//		cout << find_set(b[i]) << " ";
		if(flag == 0)
			printf("Case %d is a tree.\n", ncase ++);
		else
			printf("Case %d is not a tree.\n", ncase ++);
	}
	
	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