单点时限: 2.0 sec
内存限制: 512 MB
给定一个包含 $ n $ 个点的有向图 $ G(V,E) $ ,以及两个点 $ s,t $ ,现在你想要知道从 $ s $ 到 $ t $ 的最短时间。
但是现在在这个图中存在若干“传送门”,每个“传送门”可以表示为一个二元组 $ (x,y) $ ,表示可以从 $ x $ 传送到 $ y $ 且不花费任何时间,并且所有的“传送门”都可以任意使用。
同时存在如下假设:
第一行一个整数$ task $,满足$ task=1 $表示任务编号(对于完成这道题而言,你可以忽略这一行)。
第二行五个数$n,m,p,s,t$,$n$表示点的个数,$m$表示边的个数,$p$表示传送门的个数,$1 \leq s,t \leq n$。
接下来$m$行,每行三个数$u_i,v_i,c_i$,其中$1 \leq u_i,v_i \leq n,1 \leq c_i \leq 10^9$,表示存在一条从$u_i$到$v_i$且花费时间$c_i$的路径。
接下来$p$行,每行两个数$x_i,y_i$,其中$1 \leq x_i,y_i \leq n$,表示存在从$x_i$转移到$y_i$的传送门。
若存在一条从$s$到$t$的路径,则输出一个整数表示最短时间消耗;否则输出inf
。
1 4 4 2 1 4 1 4 1000 1 2 100 2 3 100 3 4 100 1 2 2 3
100
数据范围:$2 \leq n \leq 10^5,1 \leq m \leq 2 \times 10^5,p \leq 2 \times 10^5$
答案可能超过int
。