题目链接

问题分析:

题意:
rule1:胜负关系具有传递性
rule2:胜负关系形成闭环时,则闭环内的都不可能是冠军

所以大胆猜测,只要输过一次的人就不可能是冠军,统计最后没有输过的人数,若为1,则就是冠军,否则不能产生冠军!可以AC。

程序说明:

使用map<string, bool> 边输入边记录胜负属性,最后再用迭代器扫描一遍即可。

复杂度:

只是整体扫描了两遍,因此为O(n)


AC程序:

/**************************
//@Author: 3stone
//@ACM: HDU-2094 产生冠军
//@Time: 18/6/10
//@IDE: VSCode2018
***************************/
#include<cstdio>
#include<string>
#include<iostream>
#include<map>using namespace std;int main() {int n, count; map<string, bool> player;string winner, loser;while(cin >> n) {if (n == 0)break;player.clear();count = 0;for (int i = 0; i < n; i++) {cin >> winner >> loser;if(player.find(winner) == player.end()) //若胜者是第一次出现player[winner] = true;player[loser] = false;}map<string, bool>::iterator it;for(it = player.begin(); it != player.end(); it++) {if (it->second)count++;}if(count == 1)cout << "Yes" << endl;elsecout << "No" << endl;}//while system("pause");return 0;
}
程序参考:

海岛Blog 的解法思路与我一致,不过他用set容器实现两个集合,然后size作差显得更加清晰明了。

【ACM】HDU.2094 产生冠军 【STL-map】相关推荐

  1. HDU 2094 产生冠军 (map容器)

    title: 产生冠军 杭电 2094 tags: [acm,stl] 题目链接 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则 ...

  2. HDU hdu 2094 产生冠军 拓扑排序 判定环

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2094 对于是否有环,是通过一个N(节点数)的循环来判定.检查并更新每个节点的入度数. 每找到一个入度唯 ...

  3. HDU 2094 产生冠军

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

  4. HDU 2094产生冠军

    原文链接:http://www.cnblogs.com/FCWORLD/archive/2011/04/07/2007468.html Sample Input 3 Alice Bob Smith J ...

  5. HDU 2094 产生冠军

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

  6. hdu 2094 “产生冠军“

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

  7. 杭电ACM 2094 产生冠军——C语言)

    Hdu 2094 产生冠军 题目 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之 ...

  8. C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)

    1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...

  9. STL map 简介

    STL map 简介 转载于:http://www.cnblogs.com/TianFang/archive/2006/12/30/607859.html 1.目录 map简介 map的功能 使用ma ...

最新文章

  1. Netty整合SpringMVC,实现高效的HTTP服务请求
  2. xcode 4 最低的要求是 10.6.6的版本,如果你是 10.6.3的版本,又不想升级的话。可以考虑通过修改版本号的方法进行安装
  3. IE浏览器高级设置如何还原
  4. js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
  5. 第三章EF的基本使用 综合案例(练习)
  6. 如何实现复杂FPGA设计的时序收敛
  7. 8086cpu学习笔记(1):系统结构
  8. 如何通过qq发消息获取他人的IP地址。
  9. UWP: 通过命令行启动 UWP 应用
  10. 程序员必会的计算机网络知识 --酷勤网
  11. <论文阅读>CRaft
  12. UE4 全局变量的应用(蓝图)
  13. STM32Cube MX USB双设备MSC+CDC 实现虚拟U盘+虚拟串口
  14. 运气和技术的另类平衡————对大逃杀及战棋类游戏大热的原因思考(正片)
  15. java audioinputstream 读取音频文件_从原始文件中获取最多x个字节的AudioInputStream(剪切音频文件)...
  16. PMBOK(第五版)学习笔记 —— ITTO(输入、工具与技术及输出)汇总
  17. python绘制象棋棋盘图片_Python开发象棋小游戏(绘制棋盘)
  18. CodePen最佳实例分享
  19. 苹果备忘录怎么用计算机,电脑上看iPhone笔记!教你用Win10“安装”苹果备忘录...
  20. 25.【终极】实战研究二:IMDB影评得分估计

热门文章

  1. 未能找到下列包文件: C:\Users\Administrator\Desktop\DotNetFX40\dotNetFx40LP_Full_x86_x64zh-Hans.exe
  2. Intel汇编-带符号乘法
  3. 蓝桥杯 基础练习 阶乘计算(C语言)
  4. 利用WSUS搭建补丁升级服务器
  5. GraphSAGE 源代码 -- 分图训练
  6. Hive-JDBC-Kerberos认证java代码实现
  7. 新版CSDN怎么改博客背景
  8. C++ Primer Plus(第六版)编程练习答案 第3章 处理数据
  9. C++ typedef typename 作用
  10. 下载并安装vue-devtools(详细步骤)