HDU_2112_最短路
题目链接:http://acm.hdu.edu.cn/status.php?user=l1526789512&pid=2112&status=5
HDU Today
Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22918 Accepted Submission(s): 5483
这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格)。
徐总经常会问蹩脚的英文问路:“Can you help me?”。看着他那迷茫而又无助的眼神,热心的你能帮帮他吗?
请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。
第二行有徐总的所在地start,他的目的地end;
接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。
note:一组数据中地名数不会超过150个。
如果N==-1,表示输入结束。
xiasha westlake
xiasha station 60
xiasha ShoppingCenterofHangZhou 30
station westlake 20
ShoppingCenterofHangZhou supermarket 10
xiasha supermarket 50
supermarket westlake 10
-1
Hint:
The best route is:
xiasha->ShoppingCenterofHangZhou->supermarket->westlake
虽然偶尔会迷路,但是因为有了你的帮助
**和**从此还是过上了幸福的生活。
――全剧终――
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- #include<cstring>
- #include<map>
- using namespace std;
- #define INF 999999999
- int mapp[][],flag;
- int dist[];
- int n;
- /*
- void floyd()
- {
- for(int k=0; k<flag; k++)
- for(int i=0; i<flag; i++)
- for(int j=0; j<flag; j++)
- if(mapp[i][j]>mapp[i][k]+mapp[k][j])
- mapp[i][j]=mapp[i][k]+mapp[k][j];
- }
- */
- void Dijkstra(int v0)
- {
- int S[];
- for(int i=; i<flag; i++)
- {
- dist[i]=mapp[v0][i];
- S[i]=;
- }
- dist[v0]=;
- S[v0]=;
- for(int j=; j<flag;j++)
- {
- int flag1=;
- int mindist=INF;
- for(int i=; i<flag; i++)
- {
- if(!S[i]&&dist[i]<mindist)
- {
- mindist=dist[i];
- flag1=i;
- }
- }
- S[flag1]=;
- for(int i=; i<flag;i++)
- {
- if(!S[i]&&mapp[flag1][i]<INF&&dist[i]>dist[flag1]+mapp[flag1][i])
- dist[i]=dist[flag1]+mapp[flag1][i];
- }
- }
- }
- int main()
- {
- char a[],b[];
- int x,f;
- map<string ,int> m;
- while(scanf("%d",&n)!=EOF&&n!=-)
- {
- f=;
- m.clear();
- scanf("%s%s",a,b);
- if(strcmp(a,b)==)
- f=;
- m[a]=;
- m[b]=;
- flag=;
- for(int i=; i<; i++)
- {
- dist[i]=INF;
- for(int j=; j<; j++)
- {
- if(i==j)
- mapp[i][j]=;
- else
- mapp[i][j]=INF;
- }
- }
- for(int i=; i<n; i++)
- {
- scanf("%s%s%d",a,b,&x);
- //cout<<a<<b<<x<<"*"<<endl;
- if(m.find(a)==m.end())
- m[a]=flag++;
- if(m.find(b)==m.end())
- m[b]=flag++;
- if(x<mapp[m[a]][m[b]])
- {
- mapp[m[a]][m[b]]=x;
- mapp[m[b]][m[a]]=x;
- }
- }
- if(f==)
- {
- printf("0\n");
- continue;
- }
- Dijkstra();
- if(dist[]==INF)
- printf("-1\n");
- else
- printf("%d\n",dist[]);
- }
- return ;
- }
HDU_2112_最短路的更多相关文章
- bzoj1001--最大流转最短路
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路:这应该算是经典的最大流求最小割吧.不过题目中n,m<=1000,用最大流会TLE, ...
- 【USACO 3.2】Sweet Butter(最短路)
题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值. 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值.复杂度是\(O(NElogE) ...
- Sicily 1031: Campus (最短路)
这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 #include<bits/stdc++.h> #define MA ...
- 最短路(Floyd)
关于最短的先记下了 Floyd算法: 1.比较精简准确的关于Floyd思想的表达:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设maz ...
- bzoj1266最短路+最小割
本来写了spfa wa了 看到网上有人写Floyd过了 表示不开心 ̄へ ̄ 改成Floyd试试... 还是wa ヾ(。`Д´。)原来是建图错了(样例怎么过的) 结果T了 于是把Floyd改回spfa 还 ...
- HDU2433 BFS最短路
Travel Time Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 最短路(代码来源于kuangbin和百度)
最短路 最短路有多种算法,常见的有一下几种:Dijstra.Floyd.Bellman-Ford,其中Dijstra和Bellman-Ford还有优化:Dijstra可以用优先队列(或者堆)优化,Be ...
- Javascript优化细节:短路表达式
什么是短路表达式? 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程 ...
- Python中三目计算符的正确用法及短路逻辑
今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘. 短路逻辑 Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接 ...
随机推荐
- vbs io file
<% ''/*******************************二进制文件操作类************************************ ''/*作者:死在水中的鱼(死 ...
- 解决burp suite 使用chrome訪问https失真的问题
用burp suite 訪问https网页 尤其使用chrome(有时候firefox也会) 会出现js或者css载入不出来的情况 这样的时候,导出burp suite的证书,保存为cer格式 然后进 ...
- Spring中定时器实现
在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需 ...
- 大文本 通过 hadoop spark map reduce 获取 特征列 的 属性值 计算速度
大文本 通过 hadoop spark map reduce 获取 特征列 的 属性值 计算速度
- ImportError: cannot import name _imaging
python - No module named 'PIL' - Stack Overflow https://stackoverflow.com/questions/49247310/no-mod ...
- c#调用oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- Java 系统工具类 —— System、Scanner、Runtime
0. 静态成员变量 System.out:是 PrinterStream 型变量: public final class System { ... public final static InputS ...
- 洛谷P1297 单选错位——期望
题目:https://www.luogu.org/problemnew/show/P1297 读懂题后就变得很简单啦: 对于一个问题和它的下一个问题,我们考虑: 设上一个问题有 a 个选项,下一个问题 ...
- gitlab https
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md#using-https https:// ...
- “ResGen.exe”已退出,代码为 -1073741701 或 “ResGen.exe”已退出,代码为 2。
解决的办法如下: 1.关闭所有Visual Studio: 2.以管理员的身份打开命令提示窗口:(开始-运行-cmd) 3.更改目录至"CD C:\Program Files (x86)\M ...