#P1028. [2024 实验室二面] 起床战争
[2024 实验室二面] 起床战争
题目描述
在我的世界起床战争中有座编号为的岛屿以及条路,第条路连接着岛屿和,长度为。你的速度为(其初始化为0),通过每条路的时间为,幸运的是地图上共有瓶药水且每座岛屿都至多存在一瓶药水,若你此时所在的岛屿存在药水,你可以选择喝下该药水,每瓶药水喝完就会立即消失。这些药水有个等级(I级或II级),假设喝之前你的速度为,当你喝下等级为的药水后:
- 若你的速度将不会变化。
- 若你的速度将迅速+1。
- 若你的速度将迅速变为。
你开始在1号岛屿上想要用最短时间去号岛屿。
输入描述
第一行输入3个整数(分别表示岛屿数,边数,药水数)
接下来k行每行输入2个整数(表示有药水的顶点,表示该药水等级)
随后m行分别输入3个整数(表示第岛屿和之间有一条路,路长为)。
保证不会出现自环和两点间多条边。
$2<=n<=100,1<=m<=4000,0<=k<=10,0<=a<=n,1<=b<=2,1<=u_{i},v_{i}<=n,10<=w_{i}<=1e5。$
输出描述
输出一个整数代表最少花费的时间,如果无法到达,请输出-1。
示例 1
输入
5 5 2
2 2
4 2
1 2 100
2 3 3000
1 4 100
3 4 3000
3 5 100
输出
941
说明
你的路线为->(此时速度变为)->->(此时速度变为)->->。可以验证这是最优解。