体力と金額の両方を考えないといけないですが ti=2t_i=2 の金額コストを適当に大きな数(例えば101010^{10})と定義すると金額だけ考えれば良くなります。 ti=1t_i=1 のときの金額コストが ti=2t_i=2 の金額コストより十分に小さいとき、金額についての最短経路と ti=1t_i=1 の道を優先して移動したときの経路が一致します。 したがって、金額の最短経路をダイクストラ法などで処理したあと ti=2t_i=2 の金額合計を無視するために答えを ti=2t_i=2 の金額で割った余りで出力すれば良いです。 計算量はO(K(N+M)logN)O(K(N+M) \log N)となります。