P8312 [COCI 2021/2022 #4] Autobus
题目描述
在一个国家里有 $n$ 座城市。这些城市由 $m$ 条公交线路连接,其中第 $i$ 条线路从城市 $a_i$ 出发,到 $b_i$ 停止,路程中耗时 $t_i$ 分钟。
Ema 喜欢旅行,但她并不喜欢在公交线路之间换乘。在旅行过程中,她希望**最多**只需坐 $k$ 个不同的公交线路。
Ema 想知道,从城市 $c_i$ 到城市 $d_i$ 的最短旅行时间是多少(最多坐 $k$ 个不同的公交线路)。
输入格式
第一行包含两个整数 $n,m$,分别表示城市的数量和公交车线路的数量。
接下来 $m$ 行,第 $i+1$ 包含三个整数 $a_i,b_i,t_i$,分别表示第 $i$ 条公交车线路的起点、终点和从起点到终点所需的时间。
接下来一行包含两个整数 $k,q$,最大坐的不同公交线路的个数和问题题的个数。
接下来 $q$ 行,第 $m+j+3$ 行包含两个整数 $c_j,d_j$,表示询问从城市 $c_j$ 到城市 $d_j$ 的最短旅行时间。
输出格式
输出包含 $q$ 行,第 $i$ 行包含一个整数,表示从城市 $c_i$ 到城市 $d_i$ 的最短旅行时间。
说明/提示
**【样例解释】**

每个样例中的答案都已经标记在图中。
**【数据规模与约定】**
**本题采用子任务捆绑测试。**
- Subtask 1(15 pts):$k ≤ n ≤ 7$。
- Subtask 2(15 pts):$k ≤ 3$。
- Subtask 3(25 pts):$k ≤ n$。
- Subtask 4(15 pts):没有额外限制。
对于 $100\%$ 的数据,$2\le n \le 70,1\le m,t_i\le 10^6,1\le a_i,b_i,c_j,d_j\le n,1\le k\le10^9,1\le q \le n^2$。
**【提示与说明】**
**本题分值按 COCI 原题设置,满分 $70$。**
**题目译自 [COCI2021-2022](https://hsin.hr/coci/) [CONTEST #4](https://hsin.hr/coci/contest4_tasks.pdf) T2 Autobus。**