http://acm.timus.ru/problem.aspx?space=1&num=1837

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <vector>
  4. #include <string>
  5. #include <iostream>
  6. #include <queue>
  7. #include <algorithm>
  8. using namespace std;
  9. vector<int>q[];
  10.  
  11. struct node
  12. {
  13. string s;
  14. int num;
  15. bool operator <(const node &a)const
  16. {
  17. return s<a.s;
  18. }
  19. } p1[*];
  20. int t1;
  21.  
  22. int getnum(string c)
  23. {
  24. for(int i=; i<t1; i++)
  25. {
  26. if(c==p1[i].s) return i;
  27. }
  28. p1[t1++].s=c;
  29. return t1-;
  30. }
  31.  
  32. void bfs(int str)
  33. {
  34. queue<int>qq;
  35. bool vis[];
  36. memset(vis,false,sizeof(vis));
  37. qq.push(str);
  38. p1[str].num=;
  39. vis[str]=true;
  40. while(!qq.empty())
  41. {
  42. int m=qq.front();
  43. qq.pop();
  44. for(int j=; j<q[m].size(); j++)
  45. {
  46. int x=q[m][j];
  47. vis[x]=true;
  48. if(p1[x].num==-){
  49. p1[x].num=p1[m].num+;
  50. qq.push(x);
  51. }
  52. }
  53. }
  54. }
  55.  
  56. int main()
  57. {
  58. int t;
  59. scanf("%d",&t);
  60. string s1,s2,s3;
  61. t1=;
  62. int k1,k2,k3;
  63. for(int i=; i<=t; i++)
  64. {
  65. cin>>s1>>s2>>s3;
  66. k1=getnum(s1);
  67. k2=getnum(s2);
  68. k3=getnum(s3);
  69. q[k1].push_back(k2);
  70. q[k1].push_back(k3);
  71. q[k2].push_back(k1);
  72. q[k2].push_back(k3);
  73. q[k3].push_back(k1);
  74. q[k3].push_back(k2);
  75. }
  76. for(int j=; j<t1; j++)
  77. {
  78. p1[j].num=-;
  79. }
  80. string s4="Isenbaev";
  81. int num1;
  82. bool flag=false;
  83. for(int j=; j<t1; j++)
  84. {
  85. if(p1[j].s==s4)
  86. {
  87. flag=true;
  88. num1=j;
  89. break;
  90. }
  91. }
  92. if(flag)
  93. bfs(num1);
  94. sort(p1,p1+t1);
  95. for(int i=; i<t1; i++)
  96. {
  97. if(p1[i].num==-)
  98. {
  99. cout<<p1[i].s<<" "<<"undefined"<<endl;
  100. }
  101. else
  102. cout<<p1[i].s<<" "<<p1[i].num<<endl;
  103. }
  104. return ;
  105. }

ural 1837 Isenbaev's Number的更多相关文章

  1. ural 1837. Isenbaev's Number bfs

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1837 描述: Isenbaev是国外的一个大牛. 现在有许多人要参加ACM ICPC. ...

  2. URAL 1837. Isenbaev&#39;s Number (map + Dijkstra || BFS)

    1837. Isenbaev's Number Time limit: 0.5 second Memory limit: 64 MB Vladislav Isenbaev is a two-time ...

  3. 1837. Isenbaev's Number(floyd)

    1837 被数据结构部分打击的不行了 换地 刷点简单的 图论第一题 floyd水过 #include <iostream> #include<cstdio> #include& ...

  4. ural 1748 The Most Complex Number 和 丑数

    题目:http://acm.timus.ru/problem.aspx?space=1&num=1748 题意:求n范围内约数个数最多的那个数. Roughly speaking, for a ...

  5. URAL 1748. The Most Complex Number(反素数)

    题目链接 题意 :给你一个n,让你找出小于等于n的数中因子个数最多的那个数,并且输出因子个数,如果有多个答案,输出数最小的那个 思路 : 官方题解 : (1)此题最容易想到的是穷举,但是肯定超时. ( ...

  6. URAL 1748 The Most Complex Number

    题目链接:https://vjudge.net/problem/11177 题目大意: 求小于等于 n 的最大反素数. 分析: n <= 10^18,而前20个素数的乘积早超过10^18,因此可 ...

  7. ural 2071. Juice Cocktails

    2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...

  8. ural 2073. Log Files

    2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...

  9. ural 2070. Interesting Numbers

    2070. Interesting Numbers Time limit: 2.0 secondMemory limit: 64 MB Nikolay and Asya investigate int ...

随机推荐

  1. POJ 2718 穷举

    题意:给定一组数字,如0, 1, 2, 4, 6, 7,用这些数字组成两个数,并使这两个数之差最小.求这个最小差.在这个例子上,就是204和176,差为28. 分析:首先可以想到,这两个数必定是用各一 ...

  2. Spark Streaming 入门指南

    这篇博客帮你开始使用Apache Spark Streaming和HBase.Spark Streaming是核心Spark API的一个扩展,它能够处理连续数据流. Spark Streaming是 ...

  3. 安卓开发24:FrameLayout布局

    FrameLayout布局 FrameLayout是五大布局中最简单的一个布局.FrameLayout布局中的元素会根据先后顺序重叠起来.利用FrameLayout布局元素重叠的特性,我们一般可以做一 ...

  4. js跨域问题新方案

    只要创建一个空图片. js代码: var data = "http://localhost:8080/test?id="+id+"&content="+ ...

  5. jquery append

    将已经存在的一个dom对象A,通过jquery append插入另一个dom对象B,将会改变dom树结构--即A成为了B的子元素. 举个例子: js: $(".table-container ...

  6. OpenSSL与公钥私钥证书签名的千丝万缕

    导语 人对任何事物的认识都是阶段性的,从无知到知晓,从懵懂到半知半解,从误解到将信将疑,从晕头转向到下定决心吃透. 介绍 OpenSSL是一个强大的命令行工具,它可以用来处理许多种跟PKI(Publi ...

  7. AutoCompleteTextView ArrayAdapter

    AutoCompleteTextView   继承于EditText,拥有EditText所有属性和方法 在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息 首先在activity_mai ...

  8. Windows消息传递机制具体解释

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka Windows是一个消息(Message)驱动系统.Windows的消息提供了应用程序之间.应 ...

  9. ubuntu下libjson-c库的使用问题备忘

    首先安装libjson的c库 #apt-get install libjson0-dev libjson0 安装好后查看/usr/include/json下是否有头文件,有就对了! gcc -o ...

  10. Linux负载均衡软件LVS之二(安装篇)[转]

    Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...