HDU 产生冠军 2094
解题思路:这题重在分析,可能你知道的越多,这题想得越多,什么并查集,什么有向图等。
事实是,我们会发现,只要找到一个,并且仅有一个的入度为0的点,说明可以找出
冠军。若入度为0的点一个都没有,说明每个选手都是输过的;若入度为0的点超过一个,
说明多个对应的入度为0的点的关系是不确定的,也不能产生冠军。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 1005
char s1[N], s2[N], str[N][N];
int vis[N], cnt; int Change(char s[])
{
int i;
for(i = ; i < cnt; i++)
{
//如果此字符串之前出现过,直接返回之间对应的标号。
if(strcmp(str[i], s) == ) return i;
}
//如果此字符串之前没有出现过,则先将其存入字符数组中。
if(i == cnt) strcpy(str[cnt++], s);
return i;
}
int main()
{
int n;
while(~scanf("%d", &n) && n)
{
memset(vis, , sizeof(vis));//注意初始化
cnt = ;
while(n--)
{
scanf("%s %s", s1, s2);
int p1 = Change(s1);
int p2 = Change(s2);
vis[p2] = ;
}
int cnt1 = ;
for(int i = ; i < cnt; i ++) //这里的<符号是不能为<=符号的
{
if(vis[i] == ) cnt1 ++; //如果出现入度为0的,加1
//printf("vis[%d] = %d\n", i, vis[i]); //打印出来有利于debug
if(cnt1 > ) break;
}
if(cnt1 == ) printf("Yes\n"); //有且只有一个入度为0的,说明找出冠军。
else printf("No\n");
}
return ;
}
HDU 产生冠军 2094的更多相关文章
- hdu 2094 产生冠军
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2094 产生冠军 Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比 ...
- 题解报告:hdu 2094 产生冠军
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打 ...
- [HDU] 2094 产生冠军(拓扑排序+map)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2094 注意每组数据处理前,map要清空. #include<cstdio> #includ ...
- HDU 2094 产生冠军 (map容器)
title: 产生冠军 杭电 2094 tags: [acm,stl] 题目链接 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则 ...
- hdu 2094 产生冠军(拓扑排序)
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 2094 产生冠军(半拓扑排序+map)
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 2094 产生冠军(STL,set)
题目 //把所有的出现的名字开始默认都为冠军(1),然后输了的置为0,表示不为冠军,最后统计不为0的, //当有且只有一个不为0的,这个就为冠军,否则,不能产生冠军. //以上思路来自别人的博客.. ...
- [HDU] 2094 产生冠军(拓扑排序+map)
产生冠军 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- HDU 2094:产生冠军(拓扑排序)
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
随机推荐
- 10个免费开源的JS音乐播放器插件
点这里 音乐播放器在网页设计中有时候会用到,比如一些时尚类.音乐或影视类等项目,但这些 网页播放器 插件比较少见,所以这里为大家整理一个集合,也许会有用到的时候. 下面整理的播放器有些是支持自适应的, ...
- POJ 1279 Art Gallery(半平面交求多边形核的面积)
题目链接 题意 : 求一个多边形的核的面积. 思路 : 半平面交求多边形的核,然后在求面积即可. #include <stdio.h> #include <string.h> ...
- ExtJs布局之viewport
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- Jmeter正则表达式提取器的使用方法(转)
下面简单介绍一下Jmeter正则表达式提取器的使用方法. 1.添加Jmeter正则表达式提取器:在具体的Request下添加Jmeter正则表达式提取器(Jmeter正则表达式在“后置处理器”下面) ...
- sqlserver 分页
SQL语句: create PROCEDURE [dbo].[GetPageDataOutRowNumber] ( @tn nvarchar(),--表名称 @idn nvarchar(),--表主键 ...
- C++的优势以及用途
C++不一定更快,但C++给你更快的机会 C++始终没有放弃的东西,一是代码表达力,二是对机器的控制力,这是其长处也是其短处,但是如果不想绑死在某平台的战车上,这两处绝对必要. 所有的平台厂商都会自称 ...
- Django学习笔记——安装(linux环境)
1. 下载安装Django pip install Django== 测试是否安装成功 >>> import django>>> django.VERSION (1 ...
- __init__ 和 self
看代码 class A: def __init__(self, val): self.name = val def printName(self): print self.name a = A(&qu ...
- php set_include_path
string set_include_path ( string $new_include_path ) 为当前脚本设置 include_path 运行时的配置选项. Example #2 添加到in ...
- USACO Section 3.1: Contact
算法简单,写起来遇到些小问题 /* ID: yingzho1 LANG: C++ TASK: contact */ #include <iostream> #include <fst ...