#d1206. Damaged Bicycle
Damaged Bicycle
Damaged Bicycle
题目来源
CCPC Harbin 2021 G
题目描述
校园可以被看成 个点, 条双向边的图,其中第 条边的长度是 。你的宿舍在 号点,教学楼在 号点,你想从宿舍去教学楼。你的走路速度是每秒 ,骑车速度是每秒 。
根据共享单车app,校园内一共有 个停车点。第 个停车点在 点,但是有 的概率,车可能是坏的。但是你只有到达 点,然后扫描二维码之后才能知道第 辆车是不是好的。如果车是好的,那就可以骑到终点。
问你最优策略下,你最小的到达终点的期望时间是多少。如果到达不了 号点,输出 -1。
输入格式
第一行包含两个整数 表示走路和骑车的速度。
接下来一行,包含两个整数 ,表示点的个数和边的个数。
接下来 行,每行三个整数 $u_i, v_i, w_i (1\leq u_i, v_i \leq n, u_i\neq v_i, 1\leq w_i \leq 10^4)$,表示 和 之间有一条长度为 的双向边。
接下来一行一个整数 ,表示自行车的个数。
接下来 行,每行两个整数 ,表示自行车的位置和对应自行车损坏的概率。
保证所有自行车的位置都不同。
输出格式
如果无法到达,输出 -1,否则输出最小的期望时间,相对误差或者绝对误差不超过 即可。
样例输入 1
3 15
4 3
1 2 600
1 3 300
2 4 900
1
3 50
样例输出 1
460.000000
样例输入 2
3 15
5 4
1 2 600
1 3 300
2 5 900
3 4 3
2
3 50
4 0
样例输出 2
220.600000
样例输入 3
3 15
5 4
1 2 600
1 3 300
4 5 900
3 2 300
2
3 50
4 0
样例输出 3
-1
样例解释
对于第一个样例,一种可能的策略是:
- 沿着路线 尝试骑校园里唯一的自行车。
- 如果自行车损坏了,就沿着路线 步行,或者骑自行车。
考虑到路上的时间成本:
如果自行车损坏了,你会沿着路线 $1\rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 4$ 步行,总长度是 。所以时间成本是 。
如果自行车没有损坏,你会沿着路线 步行,总长度是 ,然后骑自行车沿着路线 ,总长度是 。所以时间成本是 。
自行车有 的概率损坏。所以期望时间成本是 $\frac{50}{100} \times 700 + (1 - \frac{50}{100}) \times 220 = 460$。