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了。


*/

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
char a[1005][50],b[1005][50];
int k[1005];
int main()
{
int n,i=0,sum,l;
char temp[50];
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
memset(a,NULL,sizeof(a));
memset(b,NULL,sizeof(b));
memset(k,0,sizeof(k));
memset(temp,NULL,sizeof(temp));
for(i=0;i<n;i++)
scanf("%s %s",a[i],b[i]);
for(i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(strcmp(a[i],b[j])!=0)  //没有被打败过
{
k[i]++;
// printf("k=%d\n",k[i]);
}
}
}
sum=0,l=0;
for(i=0;i<n;i++)
{
if(k[i]==n)  //第一个没有被打败过的人
{
l=1; //一个打败的人都没有l==0。
strcpy(temp,a[i]);
break;
}
}
if(l==0)
{
printf("No\n");
continue;
}
for(i=0;i<n;i++)
{
if(k[i]==n)
{
if(strcmp(temp,a[i])!=0)  //有不同的人就说明有多个人没有被打败过
{
sum=1;
printf("No\n");
break;
}
}
}
if(sum==0)
printf("Yes\n");
}
return 0;
}

点击打开链接http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=1325&pid=1002&ojid=0/*

还有一种好方法就是用set函数记录名字,非常简单:

#include<iostream>
using namespace std;
#include<set>
#include<string>
#include<map>
int main()
{
int n,i;
map<string,string> com;
set<string> name;
set<string>::iterator r;
while(cin>>n,n!=0)
{
string a,b;
com.clear();
name.clear();
for(i=0;i<n;i++)
{
cin>>a>>b;
name.insert(a);
name.insert(b);
com[b]=a;//b输给了a
}
int t=0;
for(r=name.begin();r!=name.end();r++)
{
if(!com[*r].length())
{
t++;
if(t>1)
break;
}
}
puts(t==1?"Yes":"No");
}
return 0;
}       

代码的时间主要花在了查看当前名字是否已经在前面出现过上面

#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;
}        */               

产生冠军(HDU1002)谢庆皇相关推荐

  1. 07.26爬虫request模块之药监局学习笔记

    ### request模块之药监局代码部分 #动态加载数据 #url基本一致只是id不一样 #详情页的也是动态加载出来的 #就意味着只要可以获取到id在将其带入到url中,但是首先怎么获得,其次怎么拼 ...

  2. 2018百度之星落幕:14年传承再添新丁

    9月18日,2018百度之星大赛颁奖典礼在百度大厦举行.程序设计大赛冠军由来自清华大学的毕克同学获得:开发者大赛的桂冠由来自华南理工大学.首都师范大学.哈尔滨工业大学(深圳)的联合战队收入囊中.百度地 ...

  3. 掌门教育微服务体系 Solar 第 3 弹:Nacos 企业级落地下篇

    联席作者:谢璐 谢庆芳 伊安娜 任浩军 郑重鸣谢:Nacos - 彦林,Spring Cloud Alibaba - 小马哥.洛夜,Nacos 社区 - 张龙(pader).春少(chuntaojun ...

  4. 掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地中篇

    联席作者:吴毅挺 任浩军 童子龙 郑重鸣谢:Nacos - 彦林,Spring Cloud Alibaba - 小马哥.洛夜,Nacos 社区 - 张龙(pader).春少(chuntaojun) 相 ...

  5. 掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇

    联席作者:吴毅挺 任浩军 张彬彬 廖梦鸽 张金星 胡振建 郑重鸣谢:Nacos - 彦林,Spring Cloud Alibab - 小马哥.落夜,Nacos 社区 - 张龙(pader).春少(ch ...

  6. 掌门教育微服务体系Solar第3弹:Nacos企业级落地下篇

    前言 在高速发展的时候,公司规模越来越大,老师人数越来越多,这时候公司不能铺太多人去做运营与服务,必须提高每个人效,这就需要技术驱动.因此掌门教育转变成一家技术驱动型的公司,如果被迫成为一家靠资金驱动 ...

  7. 2021中国跨境电商发展报告

    今日看点 ✦ 小米新里程碑:第5000家小米之家在沈阳正式开业 ✦ 天猫发布"送货上门"服务规范,未履行消费者可获赔10元现金 ✦ 百度CEO李彦宏:百度去年投入200亿造车 ✦ ...

  8. nacos 下线接口_《掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地中篇》...

    简介: 在高速发展的时候,公司规模越来越大,老师人数越来越多,这时候公司不能铺太多人去做运营与服务,必须提高每个人效,这就需要技术驱动.因此掌门教育转变成一家技术驱动型的公司,如果被迫成为一家靠资金驱 ...

  9. eureka上的微服务不能通过服务名调用_掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇...

    联席作者:吴毅挺 任浩军 张彬彬 廖梦鸽 张金星 胡振建 郑重鸣谢:Nacos - 彦林,Spring Cloud Alibab - 小马哥.落夜,Nacos 社区 - 张龙(pader).春少(ch ...

最新文章

  1. C语言中的union
  2. JavaWeb之过滤器(Filter)
  3. vs2017c语言程序添加图标,笔试编程必备技巧——Visual Studio 2017添加自定义代码片段...
  4. 浅析在公众号中使用弛声sdk为什么上传解析慢
  5. SAP OData Gateway里uri type为metadata的请求处理逻辑
  6. MATLAB灰色预测
  7. .net mysql数据库_.net连接MySQL数据库
  8. SQL优化-第二章-从解释计划层面让SQL飞
  9. 科学计算器java_科学计算器的Java实现
  10. bom树形结构 表设计_按树型显示BOM的结构
  11. 360面临两线作战----手机安全领域硝烟再起
  12. 阿里云香港服务器和大陆服务器的优缺点分析
  13. 解决:本地计算机无法复制文件到远程计算机
  14. 南师大GIS考研数据库2019年第五题
  15. 【Java SE】数组
  16. 基于TCP协议的游戏代理接口测试工具<二>:工具架构与代理主体实现
  17. C++:tuple的解包tie【tuple<std::string, int, int> tp;tie(name, ages, areaCode) = tp】
  18. [ecshop 资料] ecshop 手机 自动识别 ua 自动跳转到手机版本 miqinew ecmoban
  19. postgresql 手动启动_PostGreSql 手动安装
  20. 北京公积金贷款不够用 提升额度或有利刚需购房

热门文章

  1. oracle数据库恢复aul_[数据库]oracle从dbf文件中恢复数据(通过AUL工具实现)
  2. Win7 提示“请考虑更换电池”
  3. MySQL(十二)MDL锁介绍
  4. SpringBoot模拟数据库开发
  5. 轻轻松松磁盘整理巧用UltimateDefrag软件
  6. IBM:从技术变革到引领商业突破
  7. 已被多次定制!!“模拟微信答题的H5小游戏
  8. 把 VS Code 打造成 Java 开发 IDE,也挺爽!
  9. 前端代码编辑器VS Code 必装插件有哪些?
  10. 区块链 实验十 DAPP开发