当前位置:网站首页>hdu 2094 产生冠军(STL map || 拓扑 || STL set)
hdu 2094 产生冠军(STL map || 拓扑 || STL set)
2022-08-09 18:35:00 【51CTO】
题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23626
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
原来我是这样想的:只要只有一个入度是0的点那么就有唯一的冠军。于是愉快的敲完代码,测试完用例没有发现错误交上去结果不断的WA。。后来我发现问题出现在我使用的map上:
WA:
比如这份测试用例:
5
a c
c d
d e
b e
a d
4
aa bb
bb cc
cc aa
dd aa
4
a b
b c
c a
d a
第二个例子和第三个例子应该是一样的结果,但运行出来不对。因为第一个例子对第三个例子造成了“数据污染”。前面已经输入过a,b,c,d后面接着输入,mp[s1],mp[s2]的默认值不是0!单个例子我利用了map的“记忆”,可是多个例子它的记忆又导致了错误的产生。真是一把双刃剑。而用map<char*,int>更是不对。转念一想,把map放在主函数里不就能只在单个例子利用他的记忆吗!
AC:
代码还能优化的。
不依赖于STL了。自己写函数联系字符串和数字:
开始做这题很不顺的,有几个点:最开始认为图里存在子环是不可以的,后来才知道只要环不是连起所有元素的大环就可以。


比如上面的右边图,d能打败a,那么也间接的打败了b,c。所以d是冠军。
我也看了看其他大神的思路,有这样的解法(很妙~):输的人数比所有人数少1则有一个人没有输,他就是唯一的冠军。这得用好set。
边栏推荐
- 重庆智博会|2022智博会到底有哪些看点?拭目以待
- Tims中国上市进入倒计时:年亏3.8亿 估值降至14亿美元
- [免费专栏] Android安全之数据存储与数据安全【大集合】
- [Free Column] Android Fragment Injection for Android Security
- golang单元测试:testing包的基本使用
- 2022深圳(软考高级)信息系统项目管理师认证报名
- 一些自动化测试01
- What is the Treasure Project (TPC), a dark horse with wings in 2022!
- [免费专栏] Android安全之静态方式逆向APK应用浅析【手动注入smali+】+【IDA Pro静态分析so文件】+【IDA Pro基础使用讲解】
- ebook下载 | 《 企业高管IT战略指南——企业为何要落地DevOps》
猜你喜欢

【Unity3D】2D动画

使用.NET简单实现一个Redis的高性能克隆版(四、五)

渗透测试——CFS三层靶机内网渗透实操

史上最全架构师知识图谱(纯干货)
![[Free column] Xposed plug-in development for Android security [from scratch] tutorial](/img/7b/a036ac664c7e27ed7d87e7ee18c05d.png)
[Free column] Xposed plug-in development for Android security [from scratch] tutorial

Codesys结构变量编程应用(STRUCT类型)

shell之变量详解,让你秒懂!

Bi Sheng Compiler Optimization: Lazy Code Motion

论文分享:「FED BN」使用LOCAL BATCH NORMALIZATION方法解决Non-iid问题

论文精读:VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
随机推荐
Swift--多条件排序
What is the Treasure Project (TPC), a dark horse with wings in 2022!
正则表达式(全)
Leetcode 739.每日温度 单调栈
Win10系统80端口被占用的解决方法
[免费专栏] Android安全之Root检测和绕过(浅析)
宝塔面板安装使用
vim编辑器使用
数学建模——模拟退火
Codesys结构变量编程应用(STRUCT类型)
Start cleaning up the long-term divers in the electronic chart development group again
英赛克工控安全项目入围《钢铁行业智能制造解决方案推荐目录》
【Unity3D】2D动画
2022了你还不会『低代码』?数据科学也能玩转Low-Code啦!
Paper sharing: "FED BN" uses the LOCAL BATCH NORMALIZATION method to solve the Non-iid problem
阿里云架构师耗时几个月编写这份MySQL高可用和性能优化技术宝典
[免费专栏] Android安全之GDB动态调试APP
超多AI开发者等你来玩转,一起燃动昇腾AI创享日南京站!
开源一夏 | 基于若依架构的列表详情展示
2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-RC-u5 树与二分图