原文链接:http://www.cnblogs.com/FCWORLD/archive/2011/04/07/2007468.html

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。

解题思路:冠军要和每个人直接或间接的打上一场并获得胜利,所以冠军一定是唯一一个入度为0的点。输过比赛的人入度一定大于等于1。所以只要找入度为0的点的个数就可以了。如果个数大于一,则不存在冠军,等于1即存在。
另外一点需要注意名字的存法,可以用map来解决。

Code:

#include<iostream>
#include<queue>
#include<vector>
#include<map>
#include<cstring>using namespace std;const int maxn = 1005;
int n,in[maxn];
string s1,s2;
vector<int>v[maxn];//用来存储两者间的关系,该题表示存储输给选手a的选手 int main(){while(cin>>n&&n){int p=1;map<string,int>m;//存储每个选手 memset(in,0,sizeof(in));//清空in while(n--){cin>>s1>>s2;//选手a和选手b,是变化的 if(m[s1]==0) m[s1]=p++;//按每个选手名字出现的顺序,从1开始从小到大进行赋值 if(m[s2]==0) m[s2]=p++;int x,y;x=m[s1],y=m[s2];//x表示选手a的顺序,用x来表示选手a in[y]++;//输的人增加入度 v[x].push_back(y);//存储输给选手x(a)的选手  }queue<int>q;p--;//p--后表示选手人数 for(int i=1;i<=p;i++){ if(in[i]==0){q.push(i);//将入度为0的点进行入队 }}int flag=q.size();//flag表示队列大小 //cout<<flag<<endl;if(flag==1)cout<<"Yes\n";else cout<<"No\n";for(int i=1;i<=p;i++) v[i].clear();//因为一开始并不知道选手的人数,所以只能在一个样例结尾的时候对v进行清空 }return 0;
}

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 产生冠军

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

  4. hdu 2094 “产生冠军“

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

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

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

  6. HDU 2094 产生冠军

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

  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. 构建高可用的LVS负载均衡集群 入门篇
  2. java xml添加节点_Java对XML节点的修改、添加、删除 –By Xstream框架
  3. [JSOI2009]密码——AC自动机+记忆化搜索(状压)
  4. MFC中OnDraw与OnPaint的区别
  5. 运用java语言提取数据库信息
  6. POJ 1442 Black Box(大小堆,求第K小的元素)
  7. opencv Mat常用操作
  8. pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
  9. 实战详解WSUS2.0+SP1部署:WSUS2.0系列之一
  10. 都在发5G手机,现在买4G手机还合算吗?
  11. 1.VUE 安装以及vue.js下的第一个hello world
  12. linux模拟gps,Android之GPS研究(实战篇二)
  13. excel宏教程_Excel多功能工具箱(收藏家必备)
  14. 计算机常用英语词汇及读音,程序员相关常见英文单词的正确读法
  15. 测试抑郁症软件,抑郁症测试app
  16. wetool个人版_淘客干货:用了3年的wetool也没能幸免
  17. 基于JAVA出差报销管理系统
  18. 解读VL162最新Switshi切换芯片是VIA最新推出的Switsh芯片USB 3.1 Type-C接口数据切换开关专用芯片
  19. 创维宽带猫E910V10C(电信)(酒店使用的那种)改桥接
  20. [基于harbor部署私有仓库] 4 推送镜像到harbor

热门文章

  1. iic总线从机仲裁_IIC 总线
  2. 【模拟IC】使用Cadence的运算放大器参数(GBW Noise CMRR PSRR ICMR SR)测试仿真实例
  3. textarea高度自适应
  4. 奇迹Mu如何修改模型?
  5. input取消焦点 vue_vue中,页面上的input框自动获取焦点及二次获取焦点问题
  6. JeeSite 快速开发平台
  7. 原创:语义相似度(理论篇)
  8. 超短线怎么炒股?超短线炒股的四大条件!
  9. For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
  10. 2010十大新兴技术展望 (转载)