题目链接:HUD-2112 HDU Today


思路:

1.最短路spfa模板.

2.map标记建图.

3.考虑距离为0或者-1的情况.

总结:下次map记得清空orz。

AC代码:

 #include<cstdio>
#include<map>
#include<iostream>
#include<queue>
using namespace std;
const int INF = 0x3f3f3f3f;
const int maxn = ;
int Map[maxn][maxn];
int n;
int d[maxn];
int vis[maxn];
void spfa(int s,int n)
{
queue<int> q;
for(int i = ;i <= n;i++)
{
d[i] = INF;
vis[i] = ;
}
d[s] = ;
vis[s] = ;
q.push(s);
while(!q.empty())
{
int k = q.front();q.pop();
vis[k] = ;
for(int j = ;j <= n;j++)
{
if(d[k] + Map[k][j] < d[j])
{
d[j] = d[k] + Map[k][j];
if(!vis[j])
q.push(j),vis[j] = ;
}
}
}
}
void init()
{
for(int i = ;i <= ;i++)
{
for(int j = ;j <= i;j++)
{
if(j != i)
Map[i][j] = Map[j][i] = INF;
else Map[i][j] = ;
}
}
}
int main()
{
char a[],b[];
map<string,int> mp;
char st[],ed[];
int w;
while(~scanf("%d",&n) && n!= -)
{
init();//初始化
mp.clear();
int count = ;//用于map一对一转化;
scanf("%s%s",&a,&b);
mp[a] = ++count;
if(!mp[b]) mp[b] = ++count;//如果终点未出现过,则加入图中;
for(int i = ;i < n;i++)
{
scanf("%s %s %d",&st,&ed,&w);
if(!mp[st]) mp[st] = ++count;//检查两点是否出现过
if(!mp[ed]) mp[ed] = ++count;
int u = mp[st],v = mp[ed];
Map[u][v] = Map[v][u] = w;//建图;
}
spfa(,count);
if(d[ mp[b] ] == INF) printf("-1\n");
else printf("%d\n",d[ mp[b] ]);
}
return ;
}

HUD-2112 HDU Today(最短路map标记)的更多相关文章

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

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

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

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

  3. HDU 2112 HDU Today 最短路

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

  4. hdu 2112 (最短路+map)

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

  5. hdu 2112 HDU Today

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

  6. HDU 2112 HDU Today(Dijkstra)

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

  7. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  8. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  9. POJ 3320 尺取法,Hash,map标记

    1.POJ 3320 2.链接:http://poj.org/problem?id=3320 3.总结:尺取法,Hash,map标记 看书复习,p页书,一页有一个知识点,连续看求最少多少页看完所有知识 ...

随机推荐

  1. Appium+Python之异常自动截图

    运行过程中出现异常情况,我们怎么直观的看到呢?最简单的方法就是可以把异常现象截图下来. 思路:我这里采用get_screenshot_as_file(filename)方法,filename通过获取时 ...

  2. jmeter测试结果jtl字段分析

    1  Bytes Throughput Over Time  每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接受的字节数 2  Response Codes per Second  ...

  3. Codeforces Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)

    传送门 A. XORinacci 手玩三四项发现序列就是 $a,b,a\ xor\ b,a,b,...$,直接输出即可 #include<iostream> #include<cst ...

  4. 【剑指offer】Q16:翻转链表

    def reverse(head): if head == None or head.next == None: return head psuhead = ListNode(-1) while he ...

  5. Mysql8- Public Key Retrieval is not allowed

    在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public ...

  6. 7、前端知识点--关于Array.from详解

    1.Array.from()方法就是将一个类数组对象 或 可遍历对象 或 可迭代对象 转换成一个真正的数组.浅拷贝的数组实例. 2.那么,什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有len ...

  7. 攻防世界--simple-check-100

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/2543a3658d254c30a89e4ea7b8950c27.zip 这道题很坑了, ...

  8. JavaScript —— 关于for in 与 for of 的区别

    for in是ES5标准,遍历key,遍历的是数组的索引(即键名): for of是ES6标准,遍历value,遍历的是数组元素值: Object.prototype.objCustom = func ...

  9. Dubbo学习源码总结系列四--集群容错机制

    Dubbo提供了哪些集群容错机制?如何实现的?         提供了六种集群容错机制,包括Failover(失败自动切换,尝试其他服务器).Failfast(失败立即抛出异常).Failsafe(失 ...

  10. JSP学习(3)

    JSP学习(3) JSP内置对象 Web容器创建的一组对象,不使用new关键字就可以使用的内置对象 用户服务器请求 缓冲区:Buffer,就是内存的一块区域,用来保存临时数据. get与post的区别 ...