#A1277. 单源最短路(堆优化的Dijkstra算法)

单源最短路(堆优化的Dijkstra算法)

题目描述

对于一个给定的无向图,求指定两点的最短距离。

提示:

使用链式前向星+朴素的Dijkstra算法,可以通过前7组数据,后三组超时;

使用链式前向星+堆优化的Dijkstra算法,可以通过全部数据样例。


输入格式

第一行为整数n、m,表示图中点的个数和边的个数;

第二行为整数s、t,表示起点和终点的数字;

此后的m行,每行描述一条边,由三个整数u,v和w组成,表示顶点u到v之间有一条权值为w的边。

输出格式

一个整数,代表从s到t的最短距离。若不能到达则输出No。


输入/输出样例

5 6
1 5
1 2 4
2 3 3
1 4 1
2 4 2
4 5 4
2 5 1
4

数据范围

1≤n≤10^5,1≤m≤10^5,

1≤s, t≤n,

1≤u, v≤n,

1≤w≤10^3,所有边权值之和不超过int类型的数据范围


说明/提示

时间1000ms,内存256MiB