B. 自驾游 (trip)

    Type: Default File IO: trip 1000ms 256MiB

自驾游 (trip)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小 Z 决定前往比特国来一次自驾游,一边旅行一边欣赏风景。

比特国有 nn 个城市,编号 1,2,,n1,2,\cdots,n ,由 mm单向的公路连接。

ii 条公路从第 aia_i 个城市出发,前往第 bib_i 个城市,路程是 did_i 米。

小 Z 决定从 SS 号城市出发,最终到达 TT 号城市(保证 STS\not =T ),并且你的车子初始速度 vv11 米每秒。

全国共有 p (0pn)p\ (0\le p\le n) 个维修站,第 ii 个位于第 xix_i 个城市,小 Z 可以停留在这里花 cic_i 秒的时间将车升级,使得车速翻倍。小 Z 可以在某个维修站将车升级多次,但每次升级都会花 cic_i 秒的时间。例如,假设小 Z 当前的车速为 vv,并且恰好在第 xix_i 个城市,那么他可以在第 ii 个维修站花 3ci3c_i 的时间将车升级三次,使得车速变为 2×2×2×v=8v2\times 2\times 2\times v=8v

假设小 Z 的车速是 vv 米每秒,那么安全通过一条长度为 dd 米的公路所需的时间为 dv\lceil\frac{d}{v}\rceil 秒(x\lceil x\rceil 代表最小的不小于 xx 的整数)。然而,有些公路是平整的,而另一些则是坑坑洼洼的。每当小 Z 通过一条坑坑洼洼的路,车的所有升级都会损耗,通过这条路之后车速会立即变回 11 米每秒(但在通过这条路的过程中车速不会改变)。

现在小 Z 想知道,他到达 TT 号城市最少需要花多少秒?

输入格式

trip.in 文件读入数据。

第一行四个整数 n,m,S,Tn,m,S,T,代表城市个数,道路条数,起点城市编号,终点城市编号。

接下来 mm 行,每行三个整数 ai,bi,dia_i,b_i,d_i 和一个字符 chch ( 只会是 GB ),描述第 ii 条道路从第 aia_i 个城市出发,前往第 bib_i 个城市,路程是 did_i 米,路况是 chch 。如果 chchG 代表这条公路是平整的,否则是坑坑洼洼的。

接下来一行一个整数 pp ,代表维修站的个数。

接下来 pp 行,每行两个整数 xi,cix_i,c_i,代表第 ii 个维修站在第 xix_i 个城市,升级一次需要花 cic_i 秒。

输出格式

输出到 trip.out 文件。

输出一个整数,代表小 Z 到达 TT 号城市所需的最少秒数。如果小 Z 无法到达 TT 号城市,输出 1-1

样例

5 4 1 5 
1 2 4 G 
2 3 1 B
3 4 9 B
4 5 10 G 
1
1 1
23

样例 2

点击链接 ex_trip2.inex_trip2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于全部的数据,保证:

  • $1 \leq n \leq 2 \times 10^4, 1 \leq m \leq 7 \times 10^4, 1 \leq S, T \leq n$

  • 1ai,bin,1di1061 \leq a_i, b_i\leq n, 1 \leq d_i \leq 10^6

  • $0 \leq p \leq n, 1 \leq x_i \leq n, 1 \leq c_i \leq 10^6$

对于 10%10\% 的数据,保证 n=2,m=1n=2,m=1

对于另外 20%20\% 的数据,保证所有的 di=1d_i=1

对于另外 20%20\% 的数据,保证 p=0p=0

对于另外 20%20\% 的数据,保证 di100d_i\le 100

对于剩下的 30%30\% 的数据,没有特殊限制。

国庆欢乐赛2

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-10-4 14:00
End at
2024-10-4 18:00
Duration
4 hour(s)
Host
Partic.
35