博客
关于我
产生冠军(set,map,拓扑结构三种方法)
阅读量:615 次
发布时间:2019-03-13

本文共 2260 字,大约阅读时间需要 7 分钟。

产生冠军

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 10983    Accepted Submission(s): 5088

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
set 题解:总人数减去失败的人等于一 ,也就是只有一个人没失败过;handsome借此总结了一条名言:打败最吊的人,你就最吊了,哪怕这个吊人赢得再多;一组数据就可以验证此句名言:
a b
a c
a d
a x
g a
答案为6-5=1;g最吊;;;;;;
代码:
1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 int main(){int n;string a,b; 7 while(scanf("%d",&n),n){ 8 set
tot; 9 set
looser;10 while(n--)cin>>a>>b,tot.insert(a),tot.insert(b),looser.insert(b);11 if(tot.size()-looser.size()==1)puts("Yes");12 else puts("No"); 13 }14 return 0;15 }
View Code

 map题解:胜利的每次+1,失败的直接赋值无穷小;最后判断为正的个数是否为一;

代码:

1 #include
2 #include
3 #include
4 #define INF -0xffff 5 using namespace std; 6 int main(){ 7 map
player;//注意由于下面是player[a],a,b是字符串,所以string在前; 8 map
::iterator iter;// 9 string a,b;int n,flot;10 while(scanf("%d",&n),n){player.clear();flot=0;11 while(n--)cin>>a>>b,player[a]++,player[b]=INF;12 for(iter=player.begin();iter!=player.end();iter++){13 if(iter->second>=1)flot++;14 }15 if(flot==1)puts("Yes");16 else puts("No");17 }18 return 0;19 }
View Code

 拓扑结构+邻接表:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int MAXN=1010; 8 int que[MAXN]; 9 struct Node{10 int to,next;11 };12 Node edg[MAXN];13 int head[MAXN];14 map
mp;15 int k;16 priority_queue
,greater
>dl;17 void topu(){18 for(int i=0;i

 

转载地址:http://hqhaz.baihongyu.com/

你可能感兴趣的文章
Powershell中禁止执行脚本解决办法
查看>>
OO_Unit2 多线程电梯总结
查看>>
git clone 出现fatal: unable to access ‘https://github 错误解决方法
查看>>
04_Mysql配置文件(重要参数)
查看>>
python 加密算法及其相关模块的学习(hashlib,RSA,random,string,math)
查看>>
JavaSE总结
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
Python IO编程
查看>>
CSS入门总结
查看>>
使用 TortoiseGit 时,报 Access denied 错误
查看>>
基于 HTML5 WebGL 的污水处理厂泵站自控系统
查看>>
django-表单之模型表单渲染(六)
查看>>
c++之程序流程控制
查看>>
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
查看>>
有道云笔记 同步到我的博客园
查看>>
李笑来必读书籍整理
查看>>
Hadoop(十六)之使用Combiner优化MapReduce
查看>>
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
查看>>
CoreCLR源码探索(八) JIT的工作原理(详解篇)
查看>>
andriod 开发错误记录
查看>>