package hdu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.HashSet;
public class Main {
private static HashSet<Integer> set ;
private static int[] pre ;
private static boolean flag ;
private static void join(int a,int b){
int fa = find(a) ;
int fb = find(b) ;
if(fa!=fb){
pre[fa] = fb ;
}else{
flag = false ;
}
}
private static int find(int x){
if(pre[x]==x)return x ;
return pre[x] = find(pre[x]) ;
}
private static void init(){
pre = new int[100010] ;
for(int i=1;i<=100005;i++){
pre[i] = i ;
}
}
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))) ;
while(in.nextToken()!=StreamTokenizer.TT_EOF){
set = new HashSet<Integer>() ;
init() ;
flag = true ;
int a = (int)in.nval ;
in.nextToken() ;
int b = (int)in.nval ;
if(a==-1&&b==-1)break ;
if(a==0&&b==0){
System.out.println("Yes");
continue ;
}
set.add(a) ;
set.add(b) ;
join(a,b) ;
int sum = 1 ;
while(true){
in.nextToken() ;
int x = (int)in.nval ;
in.nextToken() ;
int y = (int)in.nval ;
if(x==0&&y==0)break ;
set.add(x) ;
set.add(y) ;
if(flag){
join(x,y) ;
}
sum++ ;
}
if(flag&&set.size()==sum+1){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
}
hdu1273-并查集判断是否成环(java)
最新推荐文章于 2021-09-09 16:08:54 发布