产生冠军

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");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}}

HDU 2094 产生冠军相关推荐

  1. HDU hdu 2094 产生冠军 拓扑排序 判定环

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2094 对于是否有环,是通过一个N(节点数)的循环来判定.检查并更新每个节点的入度数. 每找到一个入度唯 ...

  2. HDU 2094 产生冠军 (map容器)

    title: 产生冠军 杭电 2094 tags: [acm,stl] 题目链接 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则 ...

  3. hdu 2094 “产生冠军“

    产生冠军 时间限制:1000/1000 MS(Java/其他) 内存限制:32768/32768 K (Java/其他) 提交总数:38623 已接受提交:17522 问题描述 有一群人,打乒乓球比赛 ...

  4. 【ACM】HDU.2094 产生冠军 【STL-map】

    题目链接 问题分析: 题意: rule1:胜负关系具有传递性 rule2:胜负关系形成闭环时,则闭环内的都不可能是冠军 所以大胆猜测,只要输过一次的人就不可能是冠军,统计最后没有输过的人数,若为1,则 ...

  5. HDU 2094 产生冠军

    Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C. 如 ...

  6. HDU 2094产生冠军

    原文链接:http://www.cnblogs.com/FCWORLD/archive/2011/04/07/2007468.html Sample Input 3 Alice Bob Smith J ...

  7. 杭电ACM 2094 产生冠军——C语言)

    Hdu 2094 产生冠军 题目 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之 ...

  8. HDU 2094:产生冠军(拓扑排序)

    产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. 杭电2094产生冠军

    产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. 《R语言数据挖掘》----1.12 数据集成
  2. jQuery之get方法
  3. Proximal Algorithms 3 Interpretation
  4. OpenGL程序演示
  5. 51nod1307(暴力树剖/二分dfs/并查集)
  6. Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法...
  7. 转_人人网开放平台技术架构
  8. 计算机专业助我成长作文600,我在成长作文
  9. 关于python的英文参考文献_参考文献英文版
  10. 几个常见的逻辑训练及参考答案
  11. Java如何解析个人或他人微信二维码内的信息
  12. IE可以上网其他浏览器上不了
  13. Mycat从入门到放弃
  14. 小鲨鱼的程序生涯开始
  15. AD7190之STM32程序
  16. 【资源】stopwords.txt下载百度云(中英文)
  17. Polymer大气校正环境配置
  18. h5页面使用js实现保存当前图片到手机相册
  19. pb数据窗口控件OLE
  20. 计算机网络在生活的作用作文,关于网络的作文

热门文章

  1. “社区之星”成长故事征集
  2. 我是一个秒杀请求,正在逃离这颗星球...
  3. springboot集成freemarker 配置application.properties详解
  4. 用户配置,用户组管理,用户管理
  5. Linux学习第三章
  6. docker启动远程管理接口
  7. 3G时代需要“移动云计算专业”
  8. WinForm控件查找奇思
  9. MySQL group replication
  10. 《软技能:代码之外的生存指南》一一11.1 明智的处理方式