2094
来源:互联网 发布:国家网络风险评估标准 编辑:程序博客网 时间:2024/06/11 00:54
拓扑排序,关键是要知道参赛者的人数
#include<iostream>
#include<stdio.h>
#include<cstring>
using
namespace
std;
//关键要找到选手个数
int
indegree[2000];
//统计每个节点的入度
struct
Men{
char
name[150];
}buf[1001];
void
print(
int
k){
int
count = 0;
for
(
int
i = 0;i<k;i++)
//从所有选手中找入度为0
{
if
(indegree[i]==0)
count++;
}
if
(count==1)
printf
(
"Yes\n"
);
else
printf
(
"No\n"
);
}
int
main(){
int
n;
char
name1[200],name2[200];
while
(
scanf
(
"%d"
,&n)!=EOF&&n!=0){
for
(
int
i = 0;i<1500;i++)indegree[i]=0;
//初始化
int
k = 0;
//统计参赛人数
for
(
int
i = 1;i<=n;i++)
{
int
flag = 0;
//作为是否之前参加过的标记
scanf
(
"%s %s"
,name1,name2);
//要判断是否之前参加过比赛
for
(
int
j = 0;j<k;j++)
{
if
(
strcmp
(buf[j].name,name1)==0)
//与之前出现过的一样,则不用在k上增加人数
{
flag = 1;
//表示之前有参加过
break
;
//跳过
}
}
if
(flag==0){
strcpy
(buf[k].name,name1);
//把name1的名字给该参赛者
k++;
}
flag = 0;
for
(
int
j = 0;j<k;j++)
{
if
(
strcmp
(buf[j].name,name2)==0)
//与之前出现过的一样,则不用在k上增加人数
{
flag = 1;
//表示之前有参加过
indegree[j]++;
//入度+1
break
;
//跳过
}
}
if
(flag==0){
strcpy
(buf[k].name,name2);
//把name1的名字给该参赛者
indegree[k]++;
//入度+1
k++;
}
}
print(k);
}
return
0;
}
0 0
- 2094
- hdu 2094
- HDU 2094
- hdu 2094
- hdu 2094
- hdu 2094
- HDOJ-----2094
- hdu 2094
- hdu 2094
- hdu 2094 产生冠军
- 2094 map应用
- 杭电2094
- HDU 2094 拓扑
- hdoj 2094 产生冠军
- hdoj 2094 谁是冠军
- hdu 2094 产生冠军
- hdu 2094 产生冠军
- HDU 2094 产生冠军
- SPOJ NSUBSTR(后缀自动机)
- 指针数组与数组指针
- 只适合string的操作
- 大型分布式网站架构技术总结
- dd详解
- 2094
- 三十而立
- CF Round 8VC (A. Orchestra暴力)
- php serialize与unserialize函数
- 多看看他们
- 用Struts2来完成一个学生注册界面
- ASM 磁盘 目录 管理
- 基础练习 01字串
- TIMUS-1748. The Most Complex Number-求反素数(数学+搜索)