ACM 算法总结 --- 排序 HDOJ HDU 2094 产生冠军 ACM 2094 IN HDU
题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=2094
题目描述:
01 /*
02 一道很明显的数据结构题, 用拓扑排序解决.
03 当 输入 A 战胜 B 时, 让 B 指向 A, 表示B曾被打败过.
04 最后指向空的就表示没有人战胜过他, 如果这样的人仅
05 存在一个,那么明显,最后的冠军就是他了. 这里我用到了
06 C++ STL 的map set 用来实现 B->A 的映射关系.
07 */
08
09 //HDOJ HDU 2094 产生冠军 ACM 2094 IN HDU
10 #include <iostream>
11 #include <set>
12 #include <map>
13 #include <string>
14 using namespace std;
15
16 int main()
17 {
18 int n , i;
19 while(cin>>n , n)
20 {
21 string s1 ,s2;
22 int count = 0;
23 set<string> s;
24 map<string ,string > m;
25 for(i=0; i<n; ++i)
26 {
27 cin>>s1>>s2;
28 s.insert(s1);
29 s.insert(s2);
30 m[s2] = s1;
31 }
32 for(set<string>::iterator it = s.begin() ; it != s.end() ; it++)
33 {
34 if(!m[*it].length())
35 count ++;
36 }
37 if(count == 1)
38 cout<<"Yes"<<endl;
39 else
40 cout<<"No"<<endl;
41 }
42 return 0;
43 }
作者:BuildNewApp
出处:http://syxchina.cnblogs.com、 BuildNewApp.com
本文版权归作者、博客园和百度空间共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则作者会诅咒你的。
如果您阅读了我的文章并觉得有价值请点击此处,谢谢您的肯定1。