题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112

题目大意:给出起点和终点,然后算出最短的路。

不过有好多细节要注意:

(1)起始点和终止点相等的时候,这里注意不能直接输出0,必须用标记,因为数据可能还没有处理完!!!此处贡献n次wa。

(2)这里是某大神教我的用map进行转换,将字符串转换成数字,值得参考。map<string,int>M,V;不过这里同样是wa了好多次。要注意的是将最先输入的开始和结束的点也要放到这个map里面。

(3)再就是注意的dijkstra这个算法的应用了。

祝大家好运~wa了14次的我眼泪掉下来。。。。。

 #include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <algorithm>
using namespace std;
#define INF 9999999
int k,Map[][],node[];
map<string,int>M,V; void set()
{
for (int i=; i<; i++)
{
node[i]=INF;
for (int j=; j<; j++)
{
if (i!=j)
Map[i][j]=INF;
else
Map[i][j]=;
}
}
} void dijkstra(int m)
{
int vis[]= {};
int tm=m;
vis[m]=;
node[m]=;
for (int j=; j<k; j++)
{
int Min=INF;
for (int i=; i<k; i++)
if (!vis[i])
{
if (node[i]>node[tm]+Map[tm][i])
node[i]=node[tm]+Map[tm][i];
if (Min>node[i])
{
Min=node[i];
m=i;
}
//cout<<i<<" "<<node[i]<<" "<<Map[tm][i]<<endl;
}
vis[m]=;
tm=m;
}
} int main()
{
bool flag;
int t,n;
while (scanf("%d",&n),n!=-)
{
flag=;
M.clear();
V.clear();
set();
//memset(Map,INF,sizeof(Map));
char start[],end[],s[],e[];
k=;
scanf("%s%s",start,end);
if (strcmp(start,end)==)
flag=;
if(n==)
{
printf("-1\n");
continue;
}
M[start]=;
M[end]=;
while (n--)
{
scanf("%s%s%d",s,e,&t);
if(!V[s])
{
V[s]=;
M[s]=k++;
//cout<<k<<endl;
}
if(!V[e])
{
V[e]=;
M[e]=k++;
//cout<<k<<endl;
}
if (Map[M[s]][M[e]]>t)
Map[M[s]][M[e]]=Map[M[e]][M[s]]=t;
}
//set();
//cout<<k<<endl;
if (flag)
{
printf ("0\n");
continue;
}
dijkstra(M[start]);
if(node[M[end]]==INF)
printf ("-1\n");
else
printf ("%d\n",node[M[end]]);
}
return ;
}

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

  1. hdu 2112 HDU Today

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

  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 最短路

    题目描述: Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这 ...

  4. hdu 2112(字典树+最短路)

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

  5. hdu 2112 HDU Today (最短路,字符处理)

    题目 题目很简单,只是多了对地名转化为数字的处理,好吧,这我也是参考网上的处理办法,不过大多数的人采用map来处理 注意初始化注意范围,不然会wa!!!(这是我当时wa的原因org) 大家容易忽视的地 ...

  6. hdu 2112 HDU Today 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...

  7. HDU 2112 HDU Today (Dijkstra算法)

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

  8. hdu 2112 HDU Today (floyd算法)

    这道题貌似在原来学长给我们的搞的小比赛中出过! 这次又让我遇到,果断拿下! 不过方法很蠢,跑了1000多ms,虽然要求5000ms以内! 题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距 ...

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

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

随机推荐

  1. 免费天气预报API接口

    一.中国气象局(http://www.weather.com.cn) 1.实时接口 http://mobile.weather.com.cn/data/sk/101010100.html http:/ ...

  2. 国际电话区号SQL

    CREATE TABLE `phone_prefix` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `country` varchar(30) N ...

  3. 孤荷凌寒自学python第七十三天开始写Python的第一个爬虫3

    孤荷凌寒自学python第七十三天开始写Python的第一个爬虫3 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 直接上代码.详细过程见文末屏幕录像 ...

  4. 1107 Social Clusters (30 分)(并查集)

    并查集的基本应用 #include<bits/stdc++.h> using namespace std; ; vector<int>vec[N]; int p[N]; con ...

  5. LeetCode 234——回文链表

    1. 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O( ...

  6. NO12——快速幂取模

    long long quickmod(long long a,long long b,long long m) { ; while(b)//用一个循环从右到左便利b的所有二进制位 { )//判断此时b ...

  7. IDEA使用maven构建时控制台中文乱码的解决办法

    使用maven clean install 项目时控制台中文乱码,解决办法如下: Setting->maven->runner VMoptions: -Dfile.encoding=UTF ...

  8. PS制作圆角透明图片

    方法一:利用“魔术棒橡皮工具”. 1. 点击“圆角矩形工具”,然后选中打开的背景图片,选中即可. 2.然后,按住“ctrl+enter”,所选边框变为虚线框,然后点击“ctrl+shift+i”反选( ...

  9. 【历史】- Unix英雄传:图文细数十五位计算机先驱

    Unix,一款多任务多用户操作系统,最早由AT&T公司员工及合作伙伴在贝尔实验室于1969年开发完成.Unix的衍生及克隆版本包括Berkeley Unix.Minix.Linux.AIX.A ...

  10. Bjarne Stroustrup语录2

    一.致读者  1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示.让程序的结构尽可能地直接反映这些思想:   ★.如果你能把“它”看成一个独立的概念,就把它做成一个类.    ...