hdu 2094拓扑排序map实现记录

原创 2013年12月03日 21:14:23
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
#include<stdlib.h>
#define N 1100
#include<map>
using namespace std;
int pre[N],indegree[N];
int find(int x) {
if(pre[x]!=x)
pre[x]=find(pre[x]);
return pre[x];
}
int judge(int n) {
int  k=0,i;
for(i=1;i<=n;i++)
if(indegree[i]==0)
k++;
if(k==1)
return 1;
return 0;
}
map<string,int>p;
int main() {
int n,i,j,h,ans;
char s[N];
while(scanf("%d",&n),n) {
  p.clear();
memset(indegree,0,sizeof(indegree));
for(i=1;i<N;i++)
pre[i]=i;
h=0;
while(n--) {
scanf("%s",s);
if(p.find(s)==p.end())
p[s]=++h;
i=p[s];
scanf("%s",s);
if(p.find(s)==p.end())
p[s]=++h;
j=p[s];
pre[find(i)]=pre[find(j)];
indegree[j]++;
}
ans=0;
for(i=1;i<=h;i++)
if(find(i)==i)
ans++;
if(judge(h)&&ans==1) 
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【拓扑排序】hdu2094 产生冠军

产生冠军 http://acm.hdu.edu.cn/showproblem.php?pid=2094 Problem Description 有一群人,打乒乓球比赛,两两捉对撕...

HDU 2094产生冠军(拓扑排序)

产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...

hdu 2094 产生冠军 实实在在的水题啊!就是连拓扑排序都不要。直接统计入度就可以了

产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi...

杭电ACM2094——产生冠军~~拓扑排序

题目的意思,如题。很容易明白。 解决的方法就是拓扑排序,就可以很容易的解决了。 每输入一对选手,判断两个选手是否出现过,没有出现过,新建一个头结点,加入到邻接表中,更新结点的入度。 最后判断是否...

HDOJ 2094 产生冠军 (拓扑排序)

产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total...

csdn hud 2094 拓扑排序 已经AC

这个题目,还杭电的1285一样,需要用到拓扑排序,但是这个相对于1285,就是简单的很多,这个只需要考虑到入度等于且只能有一个,这样才能选出冠军。在每次输入的时候记录后者入度加1,在最后去比较,就可以...

HDU2094:产生冠军(拓扑排序)

产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi...

hdu 2094 产生冠军(STL map || 拓扑 || STL set)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23626 Description 有一群人,打乒乓球比赛,两两捉对撕...

hdu2647——使用队列实现拓扑排序

Problem Description Dandelion's uncle is a boss of a factory. As the spring festival is coming , ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)