机器学习 摩尔投票法 Gradle json view colors 虚拟机 notifications react router underscorejs vue修改样式 vue双向绑定 后台模板下载 jquery移除子元素 jq获取最后一个子元素 svn更新本地代码 android入门实例 oracle创建唯一索引 oracle数据库创建表空间 linux启动数据库 python正则表达式 mysql学习 mysql更新 python语言编程入门 python读取本地文件 python零基础 java方法的重载 java网课 tmac修改器 linux格式化命令 js图片上传 groupy 海妖花粉哪里多 一羽月土米水日古余打一成语 pycharm中文版 cdr字体加粗 小米8游戏模式 cf小号 电脑还原软件 0x000008e
当前位置: 首页 > 学习教程  > 编程语言

D产生冠军

2021/1/28 23:38:26 文章标签:

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

有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。
球赛的规则如下:
如果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
在产生冠军的的情况下只存在一没个有被打败的人,即表示在总人数减去失败者人数恒等于1时“Yes”

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    set<string> set1,set2;
    while(~scanf("%d",&n)){
        if(n==0)
            break;
        else{
        set1.clear();
		set2.clear();
		for(int i=1;i<=n;i++){
			string s1,s2;
			cin >> s1 >> s2;
			set1.insert(s1);
			set1.insert(s2);
			set2.insert(s2);
		}
		if(set1.size()-set2.size()==1) printf("Yes\n");
		else printf("No\n");
        }
    }
    return 0;
}

1 set介绍
(1)set是STL中一个很有用的容器,用来存储同一种数据类型的数据结构(可以称之为K的模型),基本功能与数组相似。
(2)set与数组不同的是,在set中每个元素的值都是唯一的。
(3)而且set插入数据时,能够根据元素的值自动进行排序。
(4)set中数元素的值并不能直接被改变。
插入数据(接口为insert)
set的遍历
用迭代器
set删除数据(接口为erase)
set查找数据(接口为find)


本文链接: http://www.dtmao.cc/news_show_650264.shtml

附件下载

上一篇:初识缓存

下一篇:CCF-公共钥匙盒

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?