HDU 2094 发生冠军
HDU2094产生冠军产生冠军Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth
HDU 2094 产生冠军
产生冠军Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6631 Accepted Submission(s): 3163
Problem DescriptionInputOutputSample InputSample Outputimport java.io.*;import java.util.*;public class Main {int t,n,cet;int[] degree=new int[1001];HashMap<String,Integer> hm=new HashMap<String, Integer>();public static void main(String[] args) {new Main().work();}void work(){Scanner sc=new Scanner(new BufferedInputStream(System.in));while(sc.hasNext()){t=sc.nextInt();if(t==0) break;init();//给每个字符串标号for(int i=0;i<t;i++){String s1=sc.next();if(!hm.containsKey(s1)){hm.put(s1,n);n++;}String s2=sc.next();if(!hm.containsKey(s2)){hm.put(s2,n);n++;}union(hm.get(s1),hm.get(s2));}cet=0;for(int i=0;i<n;i++){if(degree[i]==0)cet++;}if(cet==1)System.out.println("Yes");elseSystem.out.println("No");}}void init(){n=0;hm.clear();Arrays.fill(degree,0);}void union(int a,int b){degree[b]++;//a赢了b, a->b, b的入度加1}}