HDU Today


Time
Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 6147    Accepted Submission(s): 1485

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 ShoppingCenterofHangZhou30 station westlake 20 ShoppingCenterofHangZhou supermarket 10 xiasha supermarket 50 supermarket westlake 10 -1
 
Sample Output
50 
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<map> using namespace std; map<string,int>mp;//映射
string s,e;//開始站和终点站
int n; const int INF=10010100; int m[160][160],d[160],used[160],k; void dij()///dij模板
{
fill(d,d+k+1,INF);//注意这里是k个,不是n个,n仅仅是路数,不是点数,一開始由于这个RE了好几次
memset(used,0,sizeof(used));
d[1]=0;
while(1)
{
int v=-1;
for(int u=1; u<=k; u++)
if(!used[u]&&(v==-1||d[u]<d[v]))
v=u;
if(v==-1)
break;
if(d[v]==INF)
break;
used[v]=1;
for(int u=1; u<=k; u++)
if(d[u]>d[v]+m[v][u])
d[u]=d[v]+m[v][u];
}
} int main()
{
//int n;
while(cin>>n)
{
if(n==-1)
break;
else
{
mp.clear();
for(int i=0; i<=155; i++)//建图,初始化
for(int j=0; j<=155; j++)
{
if(i==j)
m[i][j]=0;
else
m[i][j]=INF;
}
int v;
k=1;
string s1,s2;
cin>>s>>e;
//用map映射给站名标记,起始站为1,终点站为2
mp[s]=k++;
mp[e]=k++;
for(int i=0; i<n; i++)
{
cin>>s1>>s2>>v;
if(!mp[s1])
mp[s1]=k++;
if(!mp[s2])
mp[s2]=k++;
if(v<m[mp[s1]][mp[s2]])
m[mp[s1]][mp[s2]]=m[mp[s2]][mp[s1]]=v;
}
//cout<<mp[e]<<endl;
if(s==e)
cout<<"0\n";
else
{
dij();
if(d[2]==INF)
cout<<"-1\n";
else
cout<<d[2]<<endl;
}
}
}
return 0;
}

hdu 2112 HDU Today(map与dijkstra的结合使用)的更多相关文章

  1. hdu 2112 (最短路+map)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others)  ...

  2. HDU 2112 HDU Today(Dijkstra)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...

  3. hdu 2112 HDU Today

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的 ...

  4. HDU 2112 HDU Today (Dijkstra算法)

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

  5. HDU 2112 HDU Today(最短路径+map)

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

  6. HDU 2112 HDU Today(STL MAP + Djistra)

    题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...

  7. ACM学习历程—HDU 2112 HDU Today(map && spfa && 优先队列)

    Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线 ...

  8. HDU 2112 HDU Today Dij+map转化

    HDU Today 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并 ...

  9. HDU 2112 HDU Today &lt;SPFA算法+map函数&gt;

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

随机推荐

  1. Redis之ZSet命令

    0.前言 Redis有序集合ZSet可以按分数进行排序, 存储结构可能使用ziplist,skiplist和hash表, zset_max_ziplist_entries和zset_max_zipli ...

  2. IIS如何添加m3u8流媒体类型

    m3u8,mime类型填写: application/x-mpegURL. ts ,mime类型填写: video/MP2T

  3. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  4. Shift Register(Using Submodule)

    /*************************************************** /  Shift Register module by Submodule /  Progra ...

  5. 批量分发SSH秘钥

    #!/usr/bin/expect # filename: distribute_key.expif [ $argc != 2 ]{ send_user "usage: expect exp ...

  6. Shell脚本与vi编辑器:vi启动与退出、工作模式、命令大全

    Vi简介 Vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序. Vi不是排版程序,只是一个纯粹的文本编辑程序. Vi是全屏幕文本编辑器,它没有菜单,只有命令. Vi不是基于窗口的,所以, ...

  7. GoWeb编程之多路复用

    GoWeb编程多路复用 在web编程中,比如我们要一个Url对应一个处理函数,或者一个页面对应一个静态文件,这些都需要进行处理,这个时候就是我们多路复用派上用场了. package main impo ...

  8. 【转】SQL SERVER 2005 数据库状态为“可疑”的解决方法

    --MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO ALTER DATABA ...

  9. start-stop-daemon

    start-stop-daemon是OpenRC计划的一部分,这个程序最先出现在Debian系的Linux发行版中,这里有个比较古老的手册页面,更详细更直观的办法当然是通过man start-stop ...

  10. Angular 5 快速入门与提高

    一.概述 尽管被称为Angular5,实际上它只是这个诞生于2012年的前端框架的的第四个版本: 看起来差不多半年就发布一个新版本,不过实际上从重写的版本2开始,开发 接口与核心思想就稳定下来了,并基 ...