#include "iostream"
#include "cstdio"
#include "queue"
#include <cstring>
#include <string>
#include "algorithm"
using namespace std;
#define Maxn 1005
#define inf 1<<29
int Map[Maxn][Maxn];
int vis[Maxn];
int dict[Maxn];
bool inq[Maxn];
int s[Maxn];
int e[Maxn];
int n;
void Init()
{
for(int i=;i<=Maxn;i++)
{
for(int j=;j<=Maxn;j++)
{
if(i==j)
Map[i][j]=;
else
Map[i][j]=Map[j][i]=inf;
}
}
}
void build_map(int T)
{
for(int i=;i<T;i++)
{
int a,b,time;
scanf("%d%d%d",&a,&b,&time);
n = max(max(n,a),b);
if(time<Map[a][b])
Map[a][b]=Map[b][a]=time;
}
// cout<<n<<endl;
}
void spfa(int x,int n)
{
queue <int> Q;
memset(vis, , sizeof(vis));
memset(inq, false, sizeof(inq));
for(int i=;i<=n;i++)
dict[i]=inf;
dict[x]=;
inq[x]=true;
Q.push(x);
while (!Q.empty())
{
int q=Q.front();
Q.pop();
//if(inq[q]==true)
inq[q]=false;
for(int i=;i<=n;i++)
{
if(Map[q][i]<inf && dict[q]+Map[q][i]<dict[i])
{
dict[i]=dict[q]+Map[q][i];
if(inq[i]==false)
{
Q.push(i);
inq[i]=true;
}
}
}
}
}
int main()
{
int T,S,D;
while(~scanf("%d%d%d",&T,&S,&D))
{
n=;
Init();
build_map(T);
int minn=inf;
for(int i=;i<S;i++)
{
scanf("%d",&s[i]);
Map[][s[i]]=Map[s[i]][]=;
} int temp=; for(int i=;i<D;i++)
{
scanf("%d",&e[i]);
}
spfa(temp,n); /*for(int i=0;i<n;i++)
cout<<dict[i]<<" ";
*/
for(int i=;i<D;i++)
minn=min(minn,dict[e[i]]);
printf("%d\n",minn); }
return ;
}

最短路之SPFA(单源)HDU 2066的更多相关文章

  1. spfa 单源最短路究极算法

    学习博客链接:SPFA 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm.     SPFA算法是西南交通大学段凡丁于1994年发表的.    从名字我 ...

  2. SPFA单源最短路径算法

    我们用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G.我们采取的方法是动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开 ...

  3. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  4. 【算法】单源最短路——Dijkstra

    对于固定起点的最短路算法,我们称之为单源最短路算法.单源最短路算法很多,最常见的就是dijkstra算法. dijkstra主要用的是一种贪心的思想,就是说如果i...s...t...j是最短路,那么 ...

  5. HDU - 2066 一个人的旅行(最短路径)(模板)

    d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到这个城市的距离设为0),草儿想去的地方有D个: 求D个城市中距离草儿家最近的距离. s.进行1次单源最短路,找出 ...

  6. HDU 5637 Transform 单源最短路

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5637 题意: http://bestcoder.hdu.edu.cn/contests/contes ...

  7. 用scheme语言实现SPFA算法(单源最短路)

    最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...

  8. 模板C++ 03图论算法 1最短路之单源最短路(SPFA)

    3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...

  9. 2018/1/28 每日一学 单源最短路的SPFA算法以及其他三大最短路算法比较总结

    刚刚AC的pj普及组第四题就是一种单源最短路. 我们知道当一个图存在负权边时像Dijkstra等算法便无法实现: 而Bellman-Ford算法的复杂度又过高O(V*E),SPFA算法便派上用场了. ...

  10. 图论-单源最短路-SPFA算法

    有关概念: 最短路问题:若在图中的每一条边都有对应的权值,求从一点到另一点之间权值和最小的路径 SPFA算法的功能是求固定起点到图中其余各点的的最短路(单源最短路径) 约定:图中不存在负权环,用邻接表 ...

随机推荐

  1. __STDC_CONSTANT_MACROS和__STDC_CONSTANT_MACROS的作用

    虽然是写C++出身,但还真不知道这两个宏是什么作用.查了一下,参见这里. __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are a workaround ...

  2. HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Li ...

  3. MySQL学习笔记(五)—— 子查询及联结

    子查询: 子查询,即嵌套在其他查询中的查询.例如我们有这样几个表,顾客表,订单表,商品表,我们想知道有哪些客户买了商品A,那么我们就需要先查看哪些订单里包含了商品A,然后根据订单查出是哪些客户. my ...

  4. eclipse订制快捷键

    步骤: 1.window-preference. 2.在(1)处输入keys,在(2)处输入命令的原来的快捷键,方便找到Binding,在(3)处输入自定义的快捷键.点击“apply and clos ...

  5. PHP生成一个不重复随机数组的封装方法

    <?php /** array unique_rand( int $min, int $max, int $num )* 生成一定数量的不重复随机数* $min 和 $max: 指定随机数的范围 ...

  6. 简单数位DP

    https://cn.vjudge.net/problem/HDU-4722 懒得写看,代码注释吧;主要存板子 #include <cstdio> #include <cstring ...

  7. hadoop2.X集群安装与应用

    可参考此文档:hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档(非常详细)http://www.aboutyun.com/thread-7684-1-1.html 步骤一:下 ...

  8. codevs 3269 混合背包(复习混合背包)

    传送门 [题目大意]给出物品的数量.-1为无限个. [思路]混合背包.... [code] #include<iostream> #include<cstdio> #inclu ...

  9. XAMPP的端口被占用

    打开xampp\apache\conf\httpd.conf文件把80端口修改为:8081;打开xampp\apache\conf\extre\httpd-ssl.conf文件把443修改为4433或 ...

  10. alsa音频驱动框架

    sound/core/sound.c 实现了最顶层的file_operations,它起中转作用 sound/core/control.c 实现了控制接口的file_operations sound/ ...