产生冠军(set,map,拓扑结构三种方法)
产生冠军
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10983 Accepted Submission(s): 5088
球赛的规则如下:
如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。
如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。
根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
#include<cstdio>
#include<iostream>
#include<string>
#include<set>
using namespace std;
int main(){int n;string a,b;
while(scanf("%d",&n),n){
set<string>tot;
set<string>looser;
while(n--)cin>>a>>b,tot.insert(a),tot.insert(b),looser.insert(b);
if(tot.size()-looser.size()==)puts("Yes");
else puts("No");
}
return ;
}
map题解:胜利的每次+1,失败的直接赋值无穷小;最后判断为正的个数是否为一;
代码:
#include<iostream>
#include<map>
#include<string>
#define INF -0xffff
using namespace std;
int main(){
map<string,int>player;//注意由于下面是player[a],a,b是字符串,所以string在前;
map<string,int>::iterator iter;//
string a,b;int n,flot;
while(scanf("%d",&n),n){player.clear();flot=;
while(n--)cin>>a>>b,player[a]++,player[b]=INF;
for(iter=player.begin();iter!=player.end();iter++){
if(iter->second>=)flot++;
}
if(flot==)puts("Yes");
else puts("No");
}
return ;
}
拓扑结构+邻接表:
#include<string.h>
#include<queue>
#include<map>
#include<string>
#include<stdio.h>
using namespace std;
const int MAXN=;
int que[MAXN];
struct Node{
int to,next;
};
Node edg[MAXN];
int head[MAXN];
map<string,int>mp;
int k;
priority_queue<int,vector<int>,greater<int> >dl;
void topu(){
for(int i=;i<k;i++){
if(!que[i])dl.push(i);
}
if(dl.size()==)puts("Yes");
else puts("No");
}
void initial(){
memset(head,-,sizeof(head));
memset(que,,sizeof(que));
mp.clear();
while(!dl.empty())dl.pop();
k=;
}
int main(){
int n;
char s1[],s2[];
while(~scanf("%d",&n),n){
initial();
for(int i=;i<n;i++){
scanf("%s%s",s1,s2);
if(!mp.count(s1))mp[s1]=k++;
if(!mp.count(s2))mp[s2]=k++;
edg[i].to=mp[s2];
edg[i].next=head[mp[s1]];
head[mp[s1]]=i;
que[mp[s2]]++;
}
topu();
}
return ;
}
产生冠军(set,map,拓扑结构三种方法)的更多相关文章
- Java原来如此-遍历Map的三种方法
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...
- 【Golang 接口自动化07】struct转map的三种方式
背景 我们在前面介绍过怎么使用net/http发送json或者map数据,那么它能不能直接发送结构体数据呢?我们今天一起来学习结构体struct转map的三种方法,为后续做铺垫. struct转map ...
- Java中Map的三种遍历方法
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
- 两个Map的对比,三种方法,将对比结果写入文件。
三种方法的思维都是遍历一个map的Key,然后2个Map分别取这2个Key值所得到的Value. #第一种用entry private void compareMap(Map<String, S ...
- map的三种遍历方法!
map的三种遍历方法! 集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...
- Spring使用jdbcJdbcTemplate和三种方法配置数据源
三种方法配置数据源 1.需要引入jar包:spring-jdbc-4.3.2.RELEASE.jar <!-- spring内置,springJdbc,配置数据源 --> <bean ...
- Map的三种遍历方式
对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定 ...
- 转载:遍历Map的四种方法
http://www.cnblogs.com/kristain/articles/2033566.html 遍历Map的四种方法 public static void main(String[] ar ...
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
随机推荐
- Jquery_Ajax文件上传
如何实现jQuery的Ajax文件上传,PHP如实文件上传.AJAX上传文件,PHP上传文件. [PHP文件上传] 在开始之前,我觉得是有必要把通WEB上传文件的原理简单说一下的.实际上,在这里不管是 ...
- PC--CSS命名
头:header内 容:container尾:footer导航:nav侧栏:sidebar栏目:column页 面外围控制整体布局宽度:wrapper左右中:left right center登录条: ...
- PHP二分查找(递归和循环)
二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...
- map的类型映射
以下是使用STL中map类型,对类型的转换示例,主要可以解决的问题,也就是一般的类型之间的相互转换,可以较好的解决相关的问题. 以下是C++源码,比较简短,容易理解的. #include " ...
- ArcEngine颜色可视化
AE中利用.NET中的ColorDialog对话框,将color对象转化为ArcEngine中的IRgbColor (1)在实现颜色选择之前,需定义这两种颜色之间的转换函数 //Color转换为Rgb ...
- container宽度
bootstrap:宽度太宽时无需改变container的宽度大小,只需:.row{margin-left: 30px;margin-right: 30px;}
- 获取UILabel上最后一个字符串的位置。获取文字长度和高度,自动换行
//行的高度. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPat ...
- 使用oracle来计算方差及标准差
/* Formatted on 5/24/2012 4:15:58 PM (QP5 v5.149.1003.31008) */ SELECT deptno, ename, ...
- java反射机制初探
最近和一位师兄交流了一下Java,真可谓是大有收获,让我好好的学习了一下javad的反射机制,同终于明白了spring等框架的一个基本实现的思想,那么今天就和大家分享一下java的反射机制. 反射,r ...
- Qt Creator下载
Qt官网 http://qt.digia.com qt的历史版本可以到http://download.qt-project.org/archive/qt/下载