题目连接

建立一个虚拟源点就行了,,, 究极简单题。

 #include<bits/stdc++.h>
#include<stdlib.h>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<time.h>
#include <cstdio>
#include <iostream>
#include <vector>
#define ll long long
#define int long long
#define inf 0x3f3f3f3f
#define mods 1000000007
#define modd 998244353
#define PI acos(-1)
#define fi first
#define se second
#define lowbit(x) (x&(-x))
#define mp make_pair
#define pb push_back
#define si size()
#define E exp(1.0)
#define fixed cout.setf(ios::fixed)
#define fixeds(x) setprecision(x)
#define IOS ios::sync_with_stdio(false);cin.tie(0)using namespace std;ll gcd(ll a,ll b){if(a<0)a=-a;if(b<0)b=-b;return b==0?a:gcd(b,a%b);}
template<typename T>void read(T &res){bool flag=false;char ch;while(!isdigit(ch=getchar()))(ch=='-')&&(flag=true);
for(res=ch-48;isdigit(ch=getchar());res=(res<<1)+(res<<3)+ch - 48);flag&&(res=-res);}
ll lcm(ll a,ll b){return a*b/gcd(a,b);}
ll qp(ll a,ll b,ll mod){ll ans=1;if(b==0){return ans%mod;}while(b){if(b%2==1){b--;ans=ans*a%mod;}a=a*a%mod;b=b/2;}return ans%mod;}//快速幂%
ll qpn(ll a,ll b, ll p){ll ans = 1;a%=p;while(b){if(b&1){ans = (ans*a)%p;--b;}a =(a*a)%p;b >>= 1;}return ans%p;}//逆元   (分子*qp(分母,mod-2,mod))%mod;const int manx=1e5+50;
const int mamx=6e5+50;
ll head[manx],d[manx],hurt[manx];
bool vis[manx];
ll n,m,k=0,s,e;
struct node{ll v,next,w;
}a[mamx];
void add(ll u,ll v,ll w)
{a[++k].next=head[u];a[k].w=w;a[k].v=v;head[u]=k;
}
void dij()
{memset(d,inf,sizeof(d));memset(vis,0,sizeof(vis));d[s]=0;priority_queue<pair<ll,ll> >q;q.push(mp(0,s));while(q.size()){ll u=q.top().se;q.pop();if(vis[u]) continue;vis[u]=1;for(int i=head[u];i;i=a[i].next){ll v=a[i].v,w=a[i].w;if(d[v]>d[u]+w){//printf("qwq %lld\n",d[v]);      //松弛操作,更新距离d[v]=d[u]+w;// printf("sad %lld %lld %lld %lld\n",d[u],u,res,d[v]);q.push(mp(-d[v],v)); //把更新的距离和点入队,这里距离取负变成小根堆}}}
}signed main(){read(n);read(m);ll num_1;ll num_2;read(num_1);read(num_2);for(int i=1;i<=m;i++){ll x,y,z;read(x);read(y);read(z);add(x,y,z);add(y,x,z);}s=0;for(int i=1;i<=num_1;i++){ll x;read(x);add(s,x,0);add(x,s,0); }dij();  ll ma=inf;for(int i=1;i<=num_2;i++){ll x;read(x);ma=min(ma,d[x]);}printf("%lld\n",ma);}

51nod全面战争(多源点最短路)相关推荐

  1. Floyd(弗洛伊德)算法(邻接矩阵与邻接表实现)——暴力求解多源点最短路

    文章目录 Floyd(弗洛伊德)算法(邻接矩阵与邻接表实现)--暴力求解多源点最短路 简介 思想与原理 邻接矩阵解题模板 邻接表解题模板 Floyd(弗洛伊德)算法(邻接矩阵与邻接表实现)--暴力求解 ...

  2. 【福慧双修-这是不是最短路?】

    ·题目:      如何福慧双修?被太后教导的甄嬛徘徊在御花园当中.突然,她发现御花园中的花朵全都是红色和蓝色的.她冥冥之中得到了响应:这就是指导她如何福慧双修的!现在御花园可以看作是有N块区域,M条 ...

  3. AcWing 850. Dijkstra求最短路 II(堆优化dijkstra)

    题目链接 : 点击查看 题目描述 : 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点, ...

  4. 最短路径 - dijkstra

    dijkstra是单源点最短路算法. 借图: 其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合.一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知. 初始时,S中仅含有源.设u是G的 ...

  5. 算法nodehdu 2112 hdu today

    最近朋友几篇文章介绍了改算法node的文章. 关联文章的地址 被这个水题虐了一晚上,就是因为tot没有初始化,初始化为0的时候就是不超时的时候.这个标题其实还是单源点最短路,稍微有点眇乎小哉的难度,那 ...

  6. spfa判断负环( 负环判定 + spfa )

    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible. 数据保证 ...

  7. [P3371 ]【模板】单源最短路径

    这道题是模板题,有很多种做法.我使用Bellman-Ford.spfa.floyd算法来做练习,积累些经验. 难点: 1.无穷会因为负权边松弛,即INF+w<INF . 例如:设dis为到点1的 ...

  8. 差分约束系统相关练习题

    POJ1716 An integer interval [a,b], a < b, is a set of all consecutive integers beginning with a a ...

  9. 图论算法与模型(训练指南题库)

    一.基础题目 1.UVA 11624 Fire!迷宫问题 多源BFS 题意: 帮助joe走出一个大火蔓延的迷宫,其中joe每分钟可往上下左右四个方向之一走,所有着火的格子都会蔓延(空格与着火格有公共边 ...

最新文章

  1. 七日Python之路--第八天
  2. 码教授告诉你面试不要骄傲自负,也不妄自菲薄
  3. 通过案例对 spark streaming 透彻理解三板斧之三:spark streaming运行机制与架构
  4. Better Video Better Audio 的时代已经过去了吗?
  5. java处理注释_如何处理Java注释
  6. pytorch迁移学习后使用微调策略再次提高模型训练结果
  7. bzoj3545/bzoj3551 [ONTAK2010]Peaks/Peaks加强版
  8. 应用程序框架实战四:你需要应用程序框架吗
  9. 集成运算放大器不负责任讲解1
  10. word2019对输入时响应较慢
  11. latex如何设置字体并加粗_latex怎么把字加粗
  12. Machine Learning笔记——逻辑回归算法
  13. 不锈钢水处理过滤器在食品领域中的运用
  14. 2021年全国职业院校技能大赛 “大数据技术与应用”—模拟赛题(二)
  15. java毕业生设计眼科医疗室信息管理系统计算机源码+系统+mysql+调试部署+lw
  16. 社交自媒体整合网络营销推广方案的7个方法
  17. 【ZCMU1434】糖果迷阵
  18. 智能电子校徽技术方案开发
  19. 基于JSP后台的电影院选座售票小程序 毕业设计毕设作品欣赏
  20. 多目标跟踪DeepSort

热门文章

  1. 超市微信小程序怎么做_新手如何制作一个超市小程序?能发挥什么作用?
  2. 日常生活小常识,你知道多少呢?
  3. 分手之后可以挽回爱情吗?
  4. 小杜 才疏学浅的医学数据分析资料
  5. 360和QQ掐架,你支持谁?
  6. linux部署tomcat与快速启动
  7. 金山——弱智的翻译程序
  8. ApkTool的安装
  9. iFunk翼S超极本双十一特购享优惠
  10. 使用SQL语句 查询电话号码 加密显示