http://acm.hdu.edu.cn/showproblem.php?pid=2112

HDU Today

Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 18334    Accepted Submission(s): 4335

Problem Description
经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强。这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了。
这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格)。
徐总经常会问蹩脚的英文问路:“Can you help me?”。看着他那迷茫而又无助的眼神,热心的你能帮帮他吗?
请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。
 
Input
输入数据有多组,每组的第一行是公交车的总数N(0<=N<=10000);
第二行有徐总的所在地start,他的目的地end;
接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。
note:一组数据中地名数不会超过150个。
如果N==-1,表示输入结束。
 
Output
如果徐总能到达目的地,输出最短的时间;否则,输出“-1”。
 
Sample Input
6
xiasha westlake
xiasha station 60
xiasha ShoppingCenterofHangZhou 30
station westlake 20
ShoppingCenterofHangZhou supermarket 10
xiasha supermarket 50
supermarket westlake 10
-1
 
Sample Output
50 Hint: The best route is: xiasha->ShoppingCenterofHangZhou->supermarket->westlake 虽然偶尔会迷路,但是因为有了你的帮助 **和**从此还是过上了幸福的生活。 ――全剧终――
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<map>
  4. #include<string>
  5. #include<cstring>
  6. #define N 155
  7. #define INF 0x1fffffff
  8. using namespace std;
  9. int mp[N][N];
  10. bool p[N];
  11. int dist[N];
  12. void dijk(int s , int n)
  13. {
  14. int i , j , k ;
  15. for( i = ; i <= n ;i++)
  16. {
  17. p[i] = false;
  18. dist[i] = mp[s][i];
  19. }
  20. p[s] = true;
  21. dist[s] = ;
  22. for(i = ; i < n ; i++)
  23. {
  24. int Min = INF;
  25. int k = ;
  26. for( j = ; j <= n ;j++)
  27. {
  28. if(!p[j]&&dist[j]<Min)
  29. {
  30. Min = dist[j];
  31. k = j;
  32. }
  33. }
  34. if(Min==INF) return ;
  35. p[k] = true;
  36. for(j = ; j <= n ;j++)
  37. {
  38. if(!p[j]&&mp[k][j]!=INF&&dist[j]>dist[k]+mp[k][j])
  39. dist[j] = dist[k]+mp[k][j];
  40. }
  41. }
  42. }
  43. map < string ,int > city;
  44. int main()
  45. {
  46. int n ;
  47. while(~scanf("%d",&n)&&n!=-)
  48. {
  49. int cnt = ;
  50. city.clear();
  51. string ss, tt;
  52. cin>>ss>>tt;
  53. if(city.find(ss)==city.end())
  54. city[ss] = cnt++;
  55. if(city.find(tt)==city.end())
  56. city[tt] = cnt++;
  57. int l ;
  58. string s , t ;
  59. for(int i = ; i < N; i++) for(int j = ; j < N; j++) mp[i][j] = ((i==j) ? : INF);
  60. for(int i = ;i < n ;i++)
  61. {
  62. cin>>s>>t>>l;
  63. if(city.find(s)==city.end())
  64. city[s] = cnt++;
  65. if(city.find(t)==city.end())
  66. city[t] = cnt++;
  67. int sid = city[s], tid = city[t];//这样会减少复杂度
  68. //printf("%d %d\n",sid, tid);
  69. if(mp[sid][tid] > l) mp[sid][tid] = mp[tid][sid] = l;
  70. }
  71.  
  72. dijk(city[ss], city.size());
  73. if(dist[city[tt]]!=INF)
  74. printf("%d\n",dist[city[tt]]);
  75. else printf("-1\n");
  76. }
  77. return ;
  78. }

HDU Today(最短路)的更多相关文章

  1. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  2. UESTC 30 &&HDU 2544最短路【Floyd求解裸题】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  4. HDU - 2544最短路 (dijkstra算法)

    HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...

  5. HDU2112 HDU Today 最短路+字符串哈希

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. hdu 2544 最短路

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...

  7. hdu 2544 最短路 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...

  8. HDU - 2680 最短路 spfa 模板

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2680 题目大意,就是一个人可以从多个起点开始出发,看到终点的最短路是多少..只有可以运用和hdu2066 ...

  9. HDU 2066 最短路floyd算法+优化

    http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...

  10. HDU 2544最短路 【dijkstra 链式前向星+优先队列优化】

    最开始学最短路的时候只会用map二维数组存图,那个时候还不知道这就是矩阵存图,也不懂得效率怎么样 经过几个月的历练再回头看最短路的题, 发现图可以用链式前向星来存, 链式前向星的效率是比较高的.对于查 ...

随机推荐

  1. JNI的使用总结初篇

    前言:以下内容是个人在写JNI Demo前后进行查找理解总结得出的一些结论,如有错误的地方希望路过的朋友能够指正. 一.JNI是Java native interface的简称,目前就我所知这类方法的 ...

  2. 如何用jQuery实现五星好评

    jQuery是js的一个库,封装了我们开发过程中常用的一些功能,方便我们来调用,提高了我们的开发效率. Js库是把我们常用的功能放到一个单独的文件中,我们用的时候,直接引用到页面里面来就可以了. 接下 ...

  3. nova创建虚拟机源码分析系列之三 PasteDeploy

    上一篇博文介绍WSGI在nova创建虚拟机过程的作用是解析URL,是以一个最简单的例子去给读者有一个印象.在openstack中URL复杂程度也大大超过上一个例子.所以openstack使用了Past ...

  4. Python列表list对象方法总结

  5. 伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(1)------第一次扩张

    伽罗瓦域是抽象代数下的域论分支中的内容,这部分想必很多人都比较熟悉,此处不再赘述. 最近,国密算法中的SM2和SM9已经成为国际标准,其中SM9算法在椭圆曲线离散对数难题的基础上,添加了若干个双线性配 ...

  6. 1.1 About Percona XtraDB Cluster

    摘要: 出处:kelvin19840813 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎 ...

  7. Fiddler 抓包https配置 提示creation of the root certificate was not successful 证书安装不成功

    在使用Fiddler抓包时,我们有时需要抓https协议的包,这种需要配置一下 开启监控https才可以 首先 找到Tools——>Options 在弹出的菜单中 选择https项  勾选捕捉h ...

  8. 【原创】重复造轮子之高仿EntityFramework

    前言 在上一篇<[原创]打造基于Dapper的数据访问层>中,Dapper在应付多表自由关联.分组查询.匿名查询等应用场景时经常要手动写SQL语句.看着代码里满屏的红色SQL字符串,简直头 ...

  9. InnoDB锁

    共享锁和排它锁 InnoDB实现了标准的行级锁,包括两种类型:共享锁(S)和排它锁(X) 一个共享锁(S)允许事务持有这种锁来读取一行 一个排它锁(X)允许事务持有这种锁来修改或删除一行 如果事务T1 ...

  10. 深入理解ES6之—块级绑定

    var声明与变量提升 使用var关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部).这就是所谓的变量提升. 块级声明 块级声 ...