AT_joi2024ho_b 建設事業 2 (Construction Project 2)
题目描述
JOI 国有 $N$ 个火车站,编号为 $1$ 到 $N$。此外,JOI 国有 $M$ 条铁路线,编号为 $1$ 到 $M$。第 $i$ 条铁路线($1 \leq i \leq M$)连接车站 $A_i$ 和车站 $B_i$(为双向通行),通过该线路需要 $C_i$ 分钟。
作为 JOI 国的大臣,你将新增 $1$ 条铁路线,其方式如下:
- 选择满足 $1 \leq u < v \leq N$ 的整数 $u, v$。修建一条连接车站 $u$ 和车站 $v$ 的双向铁路线,通过该线路需要 $L$ 分钟。注意,即使 $u$ 和 $v$ 之间已经存在铁路线,也可以再建。
- 修建完成后,如果可以从车站 $S$ 出发,经若干铁路线,在 $K$ 分钟以内到达车站 $T$,国王就会感到高兴。不考虑换乘时间和候车时间。
所有可能的整数对 $(u, v)$ 共有 $\frac{N (N-1)}{2}$ 种。你的任务是求出,在所有这些选择中,能够让国王感到高兴的 $(u, v)$ 的方案数。
给定火车站与铁路线、以及国王的期望,请编写程序,计算能让国王高兴的整数对有多少种。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $S$ $T$ $L$ $K$
> $A_1$ $B_1$ $C_1$
> $A_2$ $B_2$ $C_2$
> $\vdots$
> $A_M$ $B_M$ $C_M$
输出格式
输出一行,表示能让国王高兴的整数对的方案数。
说明/提示
## 小子任务
1. ($8$ 分)$L = 1$,$K = 2$,$C_i = 1$($1 \leq i \leq M$)。
2. ($16$ 分)$N \leq 50$,$M \leq 50$。
3. ($29$ 分)$N \leq 3000$,$M \leq 3000$。
4. ($47$ 分)无额外约束。
## 样例解释 1
比如选择 $u = 3, v = 6$,即修建一条连接车站 $3$ 和车站 $6$,耗时 $1$ 分钟的铁路线。
此时,可以从 $6$ 号站经这条新线路到 $3$ 号站,再从 $3$ 号站经已有铁路到 $7$ 号站,整个过程共需 $2$ 分钟。这样就能在 $2$ 分钟内到达 $7$ 号站,所以国王高兴。
国王高兴的整数对,包括上述情况,共有 $4$ 种。因此输出 $4$。
此输入满足小子任务 $1,2,3,4$ 的约束。
## 样例解释 2
不论选哪一组整数对,国王都高兴,因此方案数为 $3$,输出 $3$。
此输入满足小子任务 $1,2,3,4$ 的约束。
## 样例解释 3
不论选哪一组整数对,国王都不会高兴,因此输出 $0$。
此输入满足小子任务 $2,3,4$ 的约束。
## 样例解释 4
此输入满足小子任务 $2,3,4$ 的约束。
# 数据范围
- $2 \leq N \leq 200\,000$。
- $1 \leq M \leq 200\,000$。
- $1 \leq S < T \leq N$。
- $1 \leq L \leq 10^9$。
- $1 \leq K \leq 10^{15}$。
- $1 \leq A_i < B_i \leq N$($1 \leq i \leq M$)。
- $(A_i, B_i) \neq (A_j, B_j)$($1 \leq i < j \leq M$)。
- $1 \leq C_i \leq 10^9$($1 \leq i \leq M$)。
- 输入的所有数均为整数。
由 ChatGPT 5 翻译