hdu 2112 (最短路+map)
链接: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): 14515 Accepted Submission(s): 3405
这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格)。
徐总经常会问蹩脚的英文问路:“Can you help me?”。看着他那迷茫而又无助的眼神,热心的你能帮帮他吗?
请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。
第二行有徐总的所在地start,他的目的地end;
接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。
note:一组数据中地名数不会超过150个。
如果N==-1,表示输入结束。
The best route is:
xiasha->ShoppingCenterofHangZhou->supermarket->westlake
虽然偶尔会迷路,但是因为有了你的帮助
**和**从此还是过上了幸福的生活。
/////////////////////////////////// //////////////////////////////////////////////////////////////////////
字符串的处理有点坑,用了map容器,发现map真的好强大
这里map说的很好:http://www.cppblog.com/vontroy/archive/2010/05/16/115501.html
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#include <map>
#define MAXX 155
#define INF 1000000000
using namespace std; int d[MAXX],mp[MAXX][MAXX],visit[MAXX]; void Dijkstra(int n)
{
memset(visit,,sizeof(visit));
int i,y;
for(i=;i<=n;i++)
{
d[i] = mp[][i];
}
d[] = ;
visit[]=;
for(i=; i<=n; i++)
{
int m=INF,x;
for(y=; y<=n; y++)
{
if(!visit[y] && d[y]<=m)
{
m = d[x = y];
}
}
if(m == INF)break;
visit[x]=;
for(y=; y<=n; y++)
{
if(!visit[y] && d[y]>d[x]+mp[x][y])
{
d[y]=d[x]+mp[x][y];
}
}
}
} int main()
{
int n,m,i,j;
char tmp[],tmp1[];
map<string,int>car; while(scanf("%d",&n)!=EOF&&n!=-)
{
bool flag=false;
for(i=; i<MAXX; i++)
for(j=; j<MAXX; j++)
mp[i][j]=INF;
car.clear();
scanf("%s%s",tmp,tmp1);
if(strcmp(tmp,tmp1)==)
{
flag=true;
}
car[tmp]=;
car[tmp1]=;
int count = ;
int di=;
for(i=;i<n;i++)
{
scanf("%s%s%d",tmp,tmp1,&di);
if(!car[tmp])
{
car[tmp]=count++;
}
if(!car[tmp1])
{
car[tmp1]=count++;
}
if(mp[car[tmp]][car[tmp1]] > di)
{
mp[car[tmp1]][car[tmp]]=mp[car[tmp]][car[tmp1]]=di;
}
}
if(flag)
{
printf("0\n");
continue;
}
Dijkstra(count-);
if(d[]==INF)printf("-1\n");
else
printf("%d\n",d[]);
}
return ;
}
hdu 2112 (最短路+map)的更多相关文章
- HDU 2112 Today(Dijkstra+map)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意: 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050 ...
- hdu 2112 最短路
本来是拿来复习一下map的,没想搞了半天,一直wa,最后发现预处理没有处理到所有的点 就是个最短路 Sample Input 6 xiasha westlake xiasha station 60 x ...
- hdu 5521 最短路
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- 【hdu 2112】 HDU Today ( 最短路 Dijkstra)(map)
http://acm.hdu.edu.cn/showproblem.php?pid=2112 这道题给了一个将字符串与int对应的思路,就是使用map 这道题答案对了,但是没有AC,我也不知道为什么. ...
- F - JDG HDU - 2112 (最短路)&& E - IGNB HDU - 1242 (dfs)
经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬 ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
随机推荐
- linux设备驱动归纳总结(四):5.多处理器下的竞态和并发【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-67673.html linux设备驱动归纳总结(四):5.多处理器下的竞态和并发 xxxxxxxxxx ...
- Serializable 序列化
序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创建出与 ...
- Mysql 如何做双机热备和负载均衡
MySQL数据库没有增量备份的机制,但它提供了一种主从备份的机制,就是把主数据库的所有的数据同时写到备份数据库中.实现MySQL数据库的热备份. 下面是具体的主从热备份的步骤:假设主服务器A(mast ...
- WPF:MenuItem样式
基础信息 1.MenuItem 样式 <Window.Resources> <Style TargetType="{x:Type MenuItem}"> & ...
- (java)==和equals()的使用小结
1.如果两个变量说基本数据类型,且都是数值类型,eg.65f,65(不一定要求数据类型严格相同),只要两个变量的值相等,就将返回true int it=65; float fl=65.0f; char ...
- java环境log4j日志环境的配置。
首先需要4个jar包.下载地址如下 http://pan.baidu.com/s/1i4k3fiH 期中包含如下包,放到工程的lib中即可. 除此之外还需要一个配置文件,分享链接如下. htt ...
- c#之线程
//Process[] pro= Process.GetProcesses(); //foreach (var item in pro) //{ // Console.WriteLine(item); ...
- c#对话框
OpenFileDialog open = new OpenFileDialog();//创建对话框 open.InitialDirectory = @"C:\Documents and S ...
- MVC模式:实现数据库中数据的增删改查功能
*.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...
- onActivityResult传值的使用
参考地址: http://wang-peng1.iteye.com/blog/632833 http://www.cnblogs.com/linjiqin/archive/2011/06/03/207 ...