http://acm.hdu.edu.cn/showproblem.php?pid=1829
题目 | 算法 | 备注 |
仅两只异性臭虫的存在关系,求给出的数据是否矛盾 | 并查集+ 同性数组[n],异性数组[n] | |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int m,n,i,t,c;
Scanner oo=new Scanner(System.in);
c=oo.nextInt();
for(t=1;t<=c;t++){
n=oo.nextInt();
m=oo.nextInt();
int same[]=new int[n+1];
int dif[]=new int[n+1];
for(i=0;i<=n;i++){
same[i]=i;
dif[i]=-1;
}
boolean flag=false;
int a,b,ua,ub;
for(i=0;i<m;i++){
a=oo.nextInt();
b=oo.nextInt();
if(flag==true){continue;}
while(a!=same[a]){a=same[a];}
while(b!=same[b]){b=same[b];}
if(a==b){
flag=true;
}
else{
if(dif[a]!=-1){
ua=dif[a];
while(ua!=same[ua]){ua=same[ua];}
same[ua]=b;
}
dif[a]=b;
if(dif[b]!=-1){
ub=dif[b];
while(ub!=same[ub]){ub=same[ub];}
same[ub]=a;
}
dif[b]=a;
}
}
System.out.println("Scenario #"+t+":");
if(flag==true){
System.out.println("Suspicious bugs found!");
}
else{
System.out.println("No suspicious bugs found!");
}
System.out.println();
}
}
}