HDOJ 2094 产生冠军

简介: HDOJ 2094 产生冠军

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


总共的不同人的数目,减去输的不同的人的数目。

如果等于一,输出yes,其他的为no。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int m = sc.nextInt();
            if(m==0){
                return ;
            }
            String[] a = new String[2*m];
            int[] b = new int[2*m];
            for(int i=0;i<2*m;i++){
                b[i]=1;
            }
            int[] c = new int[2*m];
            for(int i=1;i<2*m;i=i+2){
                c[i]=1;
            }
            for(int i=0;i<2*m;i++){
                a[i]=sc.next();
            }
            int name =0;
            int time =0;
            for(int i=0;i<2*m-1;i++){
                for(int j=i+1;j<2*m;j++){
                    if(a[j].equals(a[i])){
                        b[j]=0;
                    }
                }
            }
            for(int i=0;i<2*m;i++){
                name+=b[i];
            }
            //System.out.println(name);
            for(int i=1;i<2*m-2;i=i+2){
                for(int j=i+2;j<2*m;j=j+2){
                    if(a[j].equals(a[i])){
                        c[j]=0;
                    }
                }
            }
            for(int i=1;i<2*m;i=i+2){
                time +=c[i];
            }
            //System.out.println(time);
            if(name-time==1){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
    }
}
目录
相关文章
|
数据采集 编解码 自动驾驶
什么样的方案,夺得了CVPR自动驾驶挑战赛冠军?
什么样的方案,夺得了CVPR自动驾驶挑战赛冠军?
126 0
|
机器学习/深度学习 人工智能 自然语言处理
Transformer六周年:当年连NeurIPS Oral都没拿到,8位作者已创办数家AI独角兽
Transformer六周年:当年连NeurIPS Oral都没拿到,8位作者已创办数家AI独角兽
332 0
|
数据可视化 数据挖掘 大数据
同济、阿里的CVPR 2022最佳学生论文奖研究了什么?这是一作的解读(2)
同济、阿里的CVPR 2022最佳学生论文奖研究了什么?这是一作的解读
204 0
|
机器学习/深度学习 达摩院 算法
同济、阿里的CVPR 2022最佳学生论文奖研究了什么?这是一作的解读(1)
同济、阿里的CVPR 2022最佳学生论文奖研究了什么?这是一作的解读
129 0
|
机器学习/深度学习 存储 人工智能
NeurIPS 2020奖项出炉:GPT-3等三项研究获最佳论文奖,华人一作论文获时间检验奖
一万八千人参会的NeurIPS 2020 相比去年数量暴涨了三成,在大会上,1750 亿参数模型 GPT-3 再次成为了人们热议的话题。
212 0
NeurIPS 2020奖项出炉:GPT-3等三项研究获最佳论文奖,华人一作论文获时间检验奖
|
算法 程序员 图形学
问鼎EDA顶会冠军之后,我们还有哪些路要走?
在日前的ICCAD 2021(计算机辅助设计国际会议)上,华中科技大学的学生团队首次参赛,就拿到了EDA布局布线算法的第一。可以说我们在EDA方面后备力量上已经开始有了一些可喜的进展。 但是芯片领域需要物理学、材料学的基础研究和精密制造,突破制约创新的瓶颈。包括EDA的设计,材料、生产制造、工艺、设计能力、制造、封装封测等关键流程,全部被华为设定进今后的目标领域之中。 “忘记历史就意味着背叛”,在我们重启芯片制造领域基础研究的时点上,我们尤其有必要回顾一下历史,看一下我们在芯片领域到底是怎么落后的,为了写好本文我找到了我国光刻领域的开创之作《光刻掩膜版的制造》,带大家共同回顾一下我们光刻的发展
问鼎EDA顶会冠军之后,我们还有哪些路要走?
|
算法 自动驾驶 计算机视觉
2021国际计算机视觉挑战赛,我们赢了三个奖!
计算机视觉方向的三大顶级会议ICCV组织的Visual Inductive Priors(简称VIPriors)比赛,这个大赛里目标重识别这个赛道的最高成绩是97%(识别精度)。来自蚂蚁集团保险技术团队的参赛选手拿到了第三名的成绩(94%)。
590 0
2021国际计算机视觉挑战赛,我们赢了三个奖!
|
机器学习/深度学习 人工智能 算法
华人问鼎CVPR!最佳论文、最佳学生论文一作均为华人,近四成作者来自中国,清华为最高产机构
华人问鼎CVPR!最佳论文、最佳学生论文一作均为华人,近四成作者来自中国,清华为最高产机构
395 0
|
安全 算法 机器学习/深度学习
深度 | 打败围棋冠军后,机器智能下一步能战胜黑客吗?
阿里妹导读:从深蓝战胜象棋冠军到AlphaGo战胜围棋冠军,每一次机器智能在特定领域战胜人类,都会引发整个社会的广泛关注。洞察了棋类博弈真相的机器智能,接下来能洞察网络安全的真相并且在黑客博弈中战胜人类吗?在机器智能炙手可热的今天,或许我们该静下心来,去理解机器智能的本质、网络安全的困境以及未来二者结合的挑战。
12721 0
|
机器学习/深度学习 人工智能 算法
AAAI 2019 四个杰出论文奖论文揭晓
一半都是强化学习论文
574 0