U405825 【模板】堆优化 Dijkstra

题目背景

**特别注意:数据经过特殊构造,会卡掉 SPFA。以及本题的时间限制较为特殊。** 本题 std 使用 STL 中的堆,且没有刻意卡常,实测**不**开 O2 跑了 500+ms。因此时限 800ms 是足够的。

题目描述

给定一个有 $n$ 个节点,$m$ 条边的无向图。求节点 $x$ 到节点 $y$ 的最小权值。 **数据保证图没有负权边。**

输入格式

第一行,4 个整数,分别表示 $n,m,x,y$。 接下来 $m$ 行,每行 3 个整数 $u,v,c$,表示节点 $u$,节点 $v$ 之间有一条权值为 $c$ 的边。

输出格式

一行一个整数,表示节点 $x$ 到节点 $y$ 的最小权值。

说明/提示

对于 $100 \%$ 的数据,$1 \le n \le 10^6,1 \le m \le 10^6 \times 1.5$。 对于任意一个 $c_i,1 \le c_i \le 1000$。 **数据经过特殊构造,会卡掉 SPFA。** ### 样例说明 样例1: ![](https://cdn.luogu.com.cn/upload/image_hosting/5ata02mg.png) 样例2: ![](https://cdn.luogu.com.cn/upload/image_hosting/zh1gfwry.png) 样例3: ![](https://cdn.luogu.com.cn/upload/image_hosting/nhlv7cwp.png)