题目描述

给一个 n(1≤2500≤n) n(1 \leq 2500 \leq n)n(1≤2500≤n) 个点 m(1≤6200≤m) m(1 \leq 6200 \leq m)m(1≤6200≤m) 条边的无向图,求 s ss 到 t tt 的最短路。

输入格式

第一行四个由空格隔开的整数 n nn、m mm、s ss、t tt。
之后的 m mm 行,每行三个正整数 si s_is​i​​、ti t_it​i​​、wi(1≤wi≤109) w_i(1 \leq w_i \leq 10 ^ 9)w​i​​(1≤w​i​​≤10​9​​),表示一条从 si s_is​i​​ 到 ti t_it​i​​ 长度为 wi w_iw​i​​ 的边。

输出格式

一个整数表示从 s ss 到 t tt 的最短路长度。数据保证至少存在一条道路。

样例

样例输入

  1. 7 11 5 4
  2. 2 4 2
  3. 1 4 3
  4. 7 2 2
  5. 3 4 3
  6. 5 7 5
  7. 7 3 3
  8. 6 1 1
  9. 6 3 4
  10. 2 4 3
  11. 5 6 3
  12. 7 2 1

样例输出

  1. 7

屠龙宝刀点击就送

  1. #include <ctype.h>
  2. #include <cstring>
  3. #include <cstdio>
  4. #include <queue>
  5. #define N 6205
  6.  
  7. using namespace std;
  8. void read(int &x)
  9. {
  10. x=;
  11. char ch=getchar();
  12. while(!isdigit(ch)) ch=getchar();
  13. while(isdigit(ch)) x=x*+ch-'',ch=getchar();
  14. }
  15. struct node
  16. {
  17. int next,to,dis;
  18. }edge[N<<];
  19. int head[N/],cnt,n,m,s,t,dis[N/];
  20. bool visit[N/];
  21. struct NODE
  22. {
  23. int x,y;
  24. bool operator<(NODE a)const
  25. {
  26. return x>a.x;
  27. }
  28. };
  29. priority_queue<NODE>q;
  30. void add(int u,int v,int w)
  31. {
  32. edge[++cnt].next=head[u];
  33. edge[cnt].to=v;
  34. edge[cnt].dis=w;
  35. head[u]=cnt;
  36. }
  37. int main()
  38. {
  39. read(n);read(m);read(s);read(t);
  40. for(int si,ti,wi;m--;)
  41. {
  42. read(si);
  43. read(ti);
  44. read(wi);
  45. add(si,ti,wi);
  46. add(ti,si,wi);
  47. }
  48. memset(dis,,sizeof(dis));
  49. dis[s]=;
  50. NODE a;
  51. a.x=dis[s];
  52. a.y=s;
  53. q.push(a);
  54. while(!q.empty())
  55. {
  56. NODE a=q.top();
  57. q.pop();
  58. if(visit[a.x]) continue;
  59. int v=a.y;
  60. visit[v]=;
  61. for(int i=head[v];i;i=edge[i].next)
  62. {
  63. if(dis[edge[i].to]>edge[i].dis+dis[v])
  64. {
  65. dis[edge[i].to]=edge[i].dis+dis[v];
  66. NODE a;
  67. a.x=dis[edge[i].to];
  68. a.y=edge[i].to;
  69. q.push(a);
  70. }
  71. }
  72. }
  73. printf("%d",dis[t]);
  74. return ;
  75. }

LibreOJ #119. 最短路 (堆优化dijkstra)的更多相关文章

  1. CCPC-Wannafly Winter Camp Day1 Div1 - 爬爬爬山 - [最短路][堆优化dijkstra]

    题目链接:https://zhixincode.com/contest/3/problem/F?problem_id=39 样例输入 1  4 5 1 1 2 3 4 1 2 1 1 3 1 1 4 ...

  2. HDU 2544 - 最短路 - [堆优化dijkstra][最短路模板题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 Time Limit: 5000/1000 MS (Java/Others) Memory Li ...

  3. LibreOJ #119. 最短路

    二次联通门 : LibreOJ #119. 最短路 /* LibreOJ #119. 最短路 堆优化的Dijkstra */ #include <cstring> #include < ...

  4. BZOJ 3040 最短路 (堆优化dijkstra)

    这题不是裸的最短路么?但是一看数据范围就傻了.点数10^6,边数10^7.这个spfa就别想了(本来spfa就是相当不靠谱的玩意),看来是要用堆优化dijkstra了.但是,平时写dijkstra时为 ...

  5. POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...

  6. 【堆优化Dijkstra+字典序最短路方案】HDU1385-Minimum Transport Cost

    [题目大意] 给出邻接矩阵以及到达各个点需要付出的代价(起点和终点没有代价),求出从给定起点到终点的最短路,并输出字典序最小的方案. [思路] 在堆优化Dijkstra中,用pre记录前驱.如果新方案 ...

  7. 堆优化Dijkstra计算最短路+路径计数

    今天考试的时候遇到了一道题需要路径计数,然而蒟蒻从来没有做过,所以在考场上真的一脸懵逼.然后出题人NaVi_Awson说明天考试还会卡SPFA,吓得我赶紧又来学一波堆优化的Dijkstra(之前只会S ...

  8. PAT-1030 Travel Plan (30 分) 最短路最小边权 堆优化dijkstra+DFS

    PAT 1030 最短路最小边权 堆优化dijkstra+DFS 1030 Travel Plan (30 分) A traveler's map gives the distances betwee ...

  9. UVA - 11374 - Airport Express(堆优化Dijkstra)

    Problem    UVA - 11374 - Airport Express Time Limit: 1000 mSec Problem Description In a small city c ...

随机推荐

  1. 任务44:Identity MVC: EF + Identity实现

    使用VSCode开发 Razer的智能感知不好.所以这里切换为VS2017进行开发: 新建一个Data的文件夹来存放我们的DBContext.在Data文件夹下新建: ApplicationDbCon ...

  2. vim的visual可视模式(转载)

    转自:http://www.cnblogs.com/chenyadong/archive/2011/08/30/2159809.html 为了便于选取文本,VIM 引入了可视(Visual)模式.要选 ...

  3. (水题)Codeforces - 630H - Benches

    https://codeforces.com/problemset/problem/630/H 又一个组合数学的问题,我们先考虑在 $n$ 列中选出 $5$ 列来放椅子,然后对第一列有 $n$ 种放法 ...

  4. 51nod1266【水】

    最短,两半分开走 最长,一边走,比较一下两端就好了. #include <bits/stdc++.h> using namespace std; typedef long long LL; ...

  5. 莫队初探(不带修/例题极少)By cellur925

    因为今天考到莫队裸题了嘤嘤嘤...而我这样的蒟蒻肯定不会这样的高端算法啊QAQ.于是暴力水了40分qwq. 正如上文所说,我实在太菜了,于是学习莫队也只是学习了最简单的不带修普通莫队,如果我能苟到省选 ...

  6. kibana 操作

    插入时不指明id,不会自动生成id,和视频中的不一样啊 解决: 其实是可以的,不过put不可以 POST才可以 中文输入有问题: 待解决: 基本操作记录 GET _search { "que ...

  7. 安装 synaptic on ubuntu 18

    apt的图形化界面管理 sudo apt install synaptic 安装后使用需要注意的是 如果打开了synaptic,终端中apt命令某些是没法正常用的,比如说apt remove,应该是锁 ...

  8. ipset 学习总结

    用途:当机器受到网络攻击时,使用 iptables 封 IP,有时候可能会封禁成千上万个 IP,如果添加成千上万条规则, 在一台注重性能的服务器或者本身性能就很差的设备上就不在适用了.ipset 就是 ...

  9. the little schemer 笔记(10)

    第十章 What Is  the Value of All of This? entry条目 是由list表组成的 pair 对,pair 对的第一个list表是集合 set.另外,两个list表的长 ...

  10. 洛谷1736(二维dp+预处理)

    洛谷1387的进阶版,但很像. 1387要求是“全为1的正方形”,取dp[i][j] = min(dp[i-1][j-1], min(dp[i-1][j], dp[i][j-1]))吧?这个有“只有对 ...