zoukankan      html  css  js  c++  java
  • 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 Description
    有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。
    球赛的规则如下:
    如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。
    如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。
    根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
     
    Input
    输入含有一些选手群,每群选手都以一个整数n(n<1000)开头,后跟n对选手的比赛结果,比赛结果以一对选手名字(中间隔一空格)表示,前者战胜后者。如果n为0,则表示输入结束。
     
    Output
    对于每个选手群,若你判断出产生了冠军,则在一行中输出“Yes”,否则在一行中输出“No”。
     
    Sample Input
    3 Alice Bob Smith John Alice Smith 5 a c c d d e b e a d 0
     
    Sample Output
    Yes No
     
    import 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");
    			else
    				System.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
    
    	}
    
    }
    



     

  • 相关阅读:
    linux加载和卸载模块
    java 面试题之银行业务系统
    java 面试题之交通灯管理系统
    java 实现类似spring的可配置的AOP框架
    分析JVM动态生成的类
    最长上升子序列(模板)
    项目管理模式
    让thinkphp 支持ftp上传到远程,ftp删除
    hdu 1280 前m大的数 哈希
    互联网+脑科学,中国脑计划的机会
  • 原文地址:https://www.cnblogs.com/james1207/p/3292222.html
Copyright © 2011-2022 走看看