1. 程式人生 > >HDOJ 2094(拓撲排序)

HDOJ 2094(拓撲排序)

hdoj %d esp ems mat () include ack sin

 1 #include <iomanip>
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cmath>
 5 #include <cstring>
 6 #include <algorithm>
 7 #include <queue>
 8 #include <stack>
 9 #include <vector>
10 #include <map>
11 using namespace std;
12 int
n,m,inbug[1100]; 13 map<string,int>mp; 14 int main(int argc, char *argv[]) 15 { 16 while(scanf("%d",&n)!=EOF) 17 { 18 if(n==0) 19 break; 20 mp.clear(); 21 memset(inbug,0,sizeof(inbug)); 22 int num=1; 23 for(int i=0;i<n;i++) 24 {
25 string a,b; 26 cin>>a>>b; 27 if(!mp[a])mp[a]=num++; 28 if(!mp[b])mp[b]=num++; 29 inbug[mp[b]]++; 30 } 31 int ans=0; 32 for(int i=1;i<num;i++) 33 { 34 if(inbug[i]==0) 35 ans++;
36 } 37 if(ans==1) 38 printf("Yes\n"); 39 else 40 printf("No\n"); 41 } 42 return 0; 43 }

HDOJ 2094(拓撲排序)