HDU-2112 HDU Today (字符串转数字,最短路)
经过锦囊相助,海东集团终于度过了危机,从此,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 -1Sample Output
50Hint: The best route is: xiasha->ShoppingCenterofHangZhou->supermarket->westlake虽然偶尔会迷路,但是因为有了你的帮助 **和**从此还是过上了幸福的生活。――全剧终――
对于存储字符串,我们采用map来存储。顺便对每个地方进行编号。
再对于编号存到一个二维的int数组里面。
走一遍dijkstra,求得答案。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <map>
#define N 200
using namespace std;
map <string, int>a;
int e[N][N], book[N], dis[N];
int main()
{int n, m, i, j, u, v, s, t, w, minn, inf=99999999;char name1[N], name2[N], str1[N], str2[N];while(scanf("%d", &m), m!=-1){n=1;a.clear();for(i=0; i<N; i++)for(j=0; j<N; j++)if(i==j)e[i][j]=0;elsee[i][j]=inf;scanf("%s%s", name1, name2);a[name1]=n++;// if(!a[name2])a[name2]=n++;while(m--){scanf("%s%s%d", str1, str2, &w);if(!a[str1])a[str1]=n++;if(!a[str2])a[str2]=n++;u=a[str1];v=a[str2];e[u][v]=e[v][u]=w;}s=a[name1];t=a[name2];for(i=0; i<n; i++)dis[i]=e[s][i];memset(book, 0, sizeof(book));book[s]=1;for(i=1; i<n-1; i++){minn=inf;for(j=1; j<n; j++){if(book[j]==0 && dis[j]<minn){minn=dis[j];u=j;}}book[u]=1;for(v=1; v<n; v++)if(dis[v] > dis[u]+e[u][v])dis[v] = dis[u]+e[u][v];}if(dis[t]==inf)printf("-1\n");elseprintf("%d\n", dis[t]);}return 0;
}
HDU-2112 HDU Today (字符串转数字,最短路)相关推荐
- ACM学习历程—HDU 2112 HDU Today(map spfa 优先队列)
Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线 ...
- hdu 2112 HDU Today 最短路(Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS ...
- HDU 2112 HDU Today (dijkstar + map)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 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 ...
- hdu 2112 ——HDU Today
Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD ...
- HDU 2112 HDU Today(最短路)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDOJ 2112 HDU Today (最短路 Dijkstra SPFA)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- python字符串拼接数字_python字符串和数值操作函数大全(非常全)
字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\'的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...
- iOS 改变字符串中数字的颜色
匹配中文字符 [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内) [^\x00-\xff] 匹配网址:[a-zA-z]+://[^\s]* 匹配国内电话 \d{3}-\d{8}|\d{4} ...
- SCRIPT1028:缺少标识符、字符串或数字 jquery ajax
2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符.字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误: 原格式: 多了 ...
最新文章
- 详细通俗重点CRF层讲解
- 学神!手握7篇Nature的他,今天再发Science!
- 在linux中输入locate出现locate: can not stat ()的错误
- 编译高性能linux so库,关于如何在linux环境下生成a库和so库(改,附图)-Go语言中文社区...
- python守护线程错误 退出子线程_请问用python里threading和queue模块来写多线程程序,子线程是如何结束的?...
- java 重定向 https_使用简单身份验证从HTTP重定向到HTTPS
- hive建表设置如果为null_Hive表中的NULL值处理
- Java基础篇:如何嵌套try语句?
- Output Arcade for Mac - 新型音频合成器
- 在ubuntu下配置C和C++的编译环境
- JS-13-jquery
- E-prime主要常见问题及matlab、python打marker方式
- IPQ4019 QSDK 下添加EC20链接网络,非内核添加GobiNet 驱动,ipk包方法
- 计算几何02_三次样条曲线
- 小信号谐振器电路仿真实验
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- ILSVRC2012下载+训练
- 你好,李焕英;再见,唐探3?
- 电子邮件服务器的ip地址_EDM电子邮件营销,你真的了解么?
- 第二周周报:预备队训练-week2(二分查找)