hdu 2094拓扑排序map实现记录
来源:互联网 发布:oa系统 java php 编辑:程序博客网 时间:2024/05/16 12:35
#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;
}
#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;
}
- hdu 2094拓扑排序map实现记录
- HDU 2094产生冠军(拓扑排序+map)
- 拓扑排序 hdu 2094
- hdu 2094 拓扑排序
- hdu-2094-产生冠军(map&拓扑)
- 《拓扑排序》hdu acm 5.2.5 set map
- 【复习记录】拓扑排序
- HDU-2094产生冠军-拓扑排序
- hdu 2094 图的拓扑排序
- 产生冠军 HDU 2094 【拓扑排序】
- hdu 2094 产生冠军 拓扑排序
- HDU 2094产生冠军(拓扑排序)
- hdu 2094 产生冠军(拓扑排序)
- HDU 2094 产生冠军(拓扑排序)
- hdu 2094 产生冠军 (拓扑排序)
- HDU/HDOJ 2094 拓扑排序or暴力
- HDU 1272 拓扑排序
- HDU 3342 拓扑排序
- 封装的ajax
- 编程面试的10大算法概念汇总
- HDU 1069 Monkey and Banana DP LIS
- 一个简单的环形缓冲区的实现
- 快速排序
- hdu 2094拓扑排序map实现记录
- Java排序算法和二分查找
- grep与正则表达式
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- 防火墙规则修改
- NoSQL之Redis常用命令--键值相关命令
- 马云的领导力是怎样炼成的?
- JNI学习
- 一个同步日志系统的简单实现 log for c (linux 平台)