HD2094_产生冠军_Hunter_猎手的博客-程序员宅基地

技术标签: ACM_基础题  


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
 

 感觉这一题出的有问题,提交正确的程序和题目描述的不相符,也许是我今天没有看出来吧,以后再看,先贴出代码。
这一题的意思就是求能否产生冠军,程序所用的思想就是首先记录第一个获胜的人的姓名,之后再添加进来点获胜选手先判断时候已经出现过,如果出现过则不记录,否则记录下来;对于输的人也是需要判重,然后添加进来,如下边代码:

#include <stdio.h>
#include <string.h>
struct 
{
  char name[50];
  int a;
}s[1005];
int main ()
{
int n,i,j,t,p;
char n1[50],n2[50];
while (scanf("%d",&n)!=EOF,n)
{
   t=0;
   for (i=0;i<n;i++)
   {
      scanf("%s %s",n1,n2);//输入。。
      for (j=0;j<t;j++)
   {
           if (strcmp(n1,s[j].name)==0) break;  // 和已存的名字比较,看是否重复了
   }
      if (j==t) //将名字复制到结构体的name中,并复制a为0,(出现多少赢过的至少一场比赛的人)t++;
  {
    strcpy(s[j].name,n1);
    s[j].a=0;
    t++;
  }
  for (j=0;j<t;j++)  
  {
       if (strcmp(n2,s[j].name)==0) //看n2是否出现过,若出现过则记录输的次数。
    {
     s[j].a+=1;
     break;
    }
  }
  if (j==t) //j==t,说明n2没出现过,所以将名字复制到s[j].name中。
  {
    strcpy(s[j].name,n2);
    s[j].a=1;
    t++;
  }
   }
   p=0;
   for (i=0;i<t;i++)
   {
      if (s[i].a==0) 
      p++;
   }
   if (p==1) printf ("Yes\n");
   else printf ("No\n");
}
return 0;
} 




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/eagle_or_snail/article/details/50017321

智能推荐

ecall函数调用系统函数参数设置教程_ecall : : "r"(a0),"r"(a1),"r"(a7):"memory-程序员宅基地

系统调用的ecall指令会使用a0和a7寄存器,其中a7寄存器保存的是系统调用号,a0寄存器保存的是系统调用参数,返回值会保存在a0寄存器中。为了能让系统调用指令能被集成进当前的流水线,ecall指令只支持一个返回值和一个参数。所有系统调用的语义见下表。系统调用名称 系统调用号 参数 返回值输出字符串 0 字符串起始地址 无输出字符 2 字符的值 无输出数字 1 数字的值 无退出程序 3 无 无读入字符 4 无 读入的字符读入数字 5 无 读入的数字对应的系统调用接口如下void prin_ecall : : "r"(a0),"r"(a1),"r"(a7):"memory

罗密欧与朱丽叶迷宫问题_两大文豪间的别样邂逅——歌德改编莎翁名篇《罗密欧与朱丽叶》轶事..._pftom的博客-程序员宅基地

梅尔乔克劳斯油画作品《歌德1775-1776》,藏于魏玛古典基金会莎翁名篇《罗密欧与朱丽叶》在德国几经翻译,其中不乏名家名译,事实上这部作品在德国还经历过一次话题度十足的改编,出自大名鼎鼎的歌德。从某种意义上说,歌德改编《罗密欧与朱丽叶》,几乎等同于当下IP剧改编,莎士比亚的《罗密欧与朱丽叶》拥有横跨欧洲大陆的“粉丝群”,易于引发收视狂潮,改编者歌德的文采斐然也是举世公认。然而,这场两大文豪之间的..._羅密歐與朱麗葉是對話形式

oracle isa-95,[原创]有哪位朋友知道支持MES模型与ISA-95标准的ERP系统有哪些啊?_用砖乎的博客-程序员宅基地

[原创]有哪位朋友知道支持MES模型与ISA-95标准的ERP系统有哪些啊?你可能知道,在MESA(制造企业解决方案协会)给出的模型中,ISA-95标准定义了MES系统集成时所用的术语和模型。该标准是由 ISA(仪器、系统和自动化协会)和ANSI(美国国家标准协会)共同发起制定的。为了能研发出高效的MES系统,必须恰当的定义软件功能,物理模型、业务流程和生产流程。从这个角度考虑,ISA-95标准是..._erp符合isa95标准

document.getElementById()方法简写-程序员宅基地

在我们写javascript的时候经肯定会经常用到document.getElementById()这个方法,这么长一串很容易写错,而且其中getElementById又有大小写之分。 其实prototype.js里提倡的一个方法就是使用$()简写,通过以下的函数,你可以用$('id')来实现document.getElementById('id')这个功能,怎么样,很爽吧! func...

spring BeanPostProcessor使用场景_beanpostprocessor场景-程序员宅基地

AnnotationConfigApplicationContext(创建容器)->refresh ->finishBeanFactoryInitialization ->getBean ->doGetBean ->createBean ->doCreateBean -> this.p..._beanpostprocessor场景

DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)-程序员宅基地

前言:距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了。其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了。至于工作上的事,之前有半年时间跑去学英语、考驾照、到健身房请私教,远离了一下代码的世界,现在又回归了。最近上班了,新的公司需要招.NET系、产品经理,有兴趣的可以左侧扣我(我部门要人,地点广州)。另外:阿里最近收购了一家公司,也需要Java系的高...

随便推点

mysql备份时候事务日志_Mysql事务、日志、数据库备份_阿伊谈的博客-程序员宅基地

一:事务一:事务介绍保证交易的完整性ACID特性:Atomic(原子性)所有语句作为一个单元全部成功执行或全部取消。不允许出现中间过程.Consistent(一致性)如果数据库在事务开始时处于一致状态,则在执行该事务期间将保留一致状态。Isolated(隔离性)事务之间不相互影响。两个方面: 修改同一行 , 一致性读行级锁:事务修改行,会锁定这行(持有这行的锁)Durable(持久性)事务成功完成...

神经网络及反向传播算法_对于神经元使用梯度下降优化参数w,x恒大于0,其收敛速度比零均值化慢-程序员宅基地

神经元是构成神经网络的基本单元,模拟生物神经元的结构和特性,接受输入信号并且产生输出。输入信号要进行加权和激活函数,然后才输出神经元的活性值。激活函数用来增强网络的表示能力和学习能力,需要连续可求导(允许少数点不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数(反向传播算法)。并且激活函数及其导数要尽可能简单,减少计算复杂度。然后激活函数的导函数要在一个合适区间内,保证训练的效率和稳定性。下面介绍几种常见的激活函数。sigimod型函数是一类两端饱和的s型曲线,有logist_对于神经元使用梯度下降优化参数w,x恒大于0,其收敛速度比零均值化慢

ESFramework Demo -- 简单的网络硬盘Demo-程序员宅基地

FTP服务器最核心的功能就是提供文件的上传、下载服务。在ESFramework Demo -- 文件传送Demo(附源码)一文中,我们演示了如何在客户端与客户端之间相互传送文件,现在我们就实现一个简单的FTP服务器,以演示如何在客户端与服务器之间传送文件。在阅读本文之前,请务必先掌握ESFramework 开发手册(03) -- 文件(夹)传送 一文中介绍的文件传送的流程及相关的API的用法。..._esframework demo

续易软件工作室日志的开始-程序员宅基地

Hi!大家好,一直都想写Blog记录关于续易软件工作室的成长,未来的展望,市场的分析。但是我也总能为自己找到很多理由,所以迟迟未动,直到今天看见好朋友Alex的Blog里引用了Matt Cutts的一句话"If you're blogging for yourself;you've already won!",这句话终于结束了续易没有Blog的历史。续易软件工作室?一个从事...

windows安装zookeeper、kafka、kafka-manager_kafkawindows安装_lsw5530的博客-程序员宅基地

1.zookeeper①zookeeper安装注意:安装前需要本机把java的jdk安装好,具体安装步骤百度一下。 下载zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/,我下载的是apache-zookeeper-3.7.0-bin.tar.gz,解压到D盘如下图: 将D:\Java\apache-zookeeper-3.7.0-bin\conf下的 zoo_sample.cfg 文件名改成 zoo.cfg,用记事本打开 zoo...._kafkawindows安装

nyoj 21三个水杯(搜索)_nyoj21 java-程序员宅基地

三个水杯时间限制:1000 ms | 内存限制:65535 KB 难度:4描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 输入第一行一个整数N(0 接下来每组测试数据有两行,第一行给出三个整数V_nyoj21 java