¡ǝɯoɔlǝʍ puɐ ollǝɥ
一眼最短路。
容易发现每到一个点 \(u\) 就会有两种决策:换速度系数与不换速度系数。
于是定义状态 \(dis_{u,p}\) 表示在点 \(u\) 速度系数为 \(p\) 时所需的最短时间。
跑一遍 dijkstra,
对于每条边 \(u \to v\),分别对 \(dis_{v,p}\) 与 \(dis_{v,s_v}\) 进行两次松弛操作即可。
答案显然为 \(\min_{i=1}^{n}\{dis_{n,s_i}\}\)。
实现。