题目链接: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. Django之视图(V)

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  2. Scrapy框架的应用

    一, Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有 ...

  3. 2019牛客暑期多校训练营(第四场) - K - number - dp

    https://ac.nowcoder.com/acm/contest/884/K 一开始整了好几个假算法,还好测了一下自己的样例过了. 考虑到300的倍数都是3的倍数+至少两个零(或者单独的0). ...

  4. hdu6357 Hills And Valleys (最长不下降子序列)

    题目传送门 题意: 给你0~9的字符串,问你翻转哪个区间后使得其最长不下降子序列长度最长 思路: 因为字符是0~9,所以我们可以定义一个b数组来枚举L,R, 去和原来的字符串去求最长公共子序列长度,不 ...

  5. IOC依赖注入的原理

    一.什么是IOC 维基百科上说到:2004年Martin Fowler 提出了“控制反转的”概念,他得出的结论是:依赖对象的获得被反转了.后来为这个创造了一个更好的名字:依赖注入(IOC = Inve ...

  6. 表格类型数据,Excel csv导入,导出操作

    import pandas # 创建表格格式# ad = pandas.DataFrame({"a": range(1, 10), "b": range(10, ...

  7. LVS总结

    一, LVS介绍 LVS linux virtual server 即linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中. 集群: 将多个服务器集中 ...

  8. Windows安装Scrapy(转)

    转自: http://www.nnzhp.cn/archives/558 Scrapy是python开发的一个爬虫框架,如果你要学习它的话,可能第一步在安装的时候,就会遇到很多问题,因为Scrapy很 ...

  9. gay绿论第一章两点注意事项

    1.不可能事件的概率为0,但概率为0的事件不一定是不可能事件,例如从自然数中取一个数结果是1的概率,从极限角度看,分子是1,分母是∞,结果是0,但它显然是有可能发生的,所以不是不可能事件. 2.两事件 ...

  10. hdu 4643 GSM(暴力)

    GSM Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...