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