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

ac代码!

Posted by mc77xy at 2020-02-02 20:15:41 on Problem 2492
#include<iostream>
#include<cstdio> 
using namespace std;
#define N 2123
int fa[2*N],ran[2*N];
inline void init(){
	for(int i=0;i<=2*N;i++){
		fa[i]=i;
		ran[i]=1;
	}
}
int find(int x){
	return x==fa[x]?x:(fa[x]=find(fa[x]));
}
inline void merge(int i,int j){
	int x=find(i),y=find(j);
	if(x==y)	return;
	if(ran[x]<=ran[y])
		fa[x]=y;
	else
		fa[y]=x;
	if(ran[x]==ran[y])
		ran[y]++;
}

int main(){
	int t,n,m,a,b,i,j=1;
	scanf("%d",&t);
	while(t--){
		int flag=1;
		scanf("%d%d",&n,&m);
		init();
		while(m--){
			if(flag){
				scanf("%d%d",&a,&b);
				int x=find(a),y=find(b);
				if(x==y)
					flag=0;
				else{
					merge(a,b+N);
					merge(a+N,b);
				}
			}
			else
				scanf("%*d%*d");
		}
		if(j>1)
            printf("\n");
		printf("Scenario #%d:\n",j++);
		if(!flag)	printf("Suspicious bugs found!\n");
		else	printf("No suspicious bugs found!\n");
	}
	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