div. 3 ボス問解説、すっかりやるのを忘れていましたね。こどふぉの問題は何故か頭に残りにくいので、ちゃんと頭に残すためにも、解き直して(実装はしない)解説をしていくことにしました。
問題概要
頂点 辺の重み付き無向グラフがあります。 個の始点と終点が与えられ、それらの最短経路の総和をコストと呼びます。 辺の重みを にできるときの、コストの最小値を求めなさい。
考えたこと
と小さいので、全点対で最短距離が求められるね。
だから消す辺を全探索して、 個の最短距離をそれぞれ求めても間に合いそうだね。 個の最短距離を出すのがちょっと大変かも(?)
解法
上で考えたことをそのまま実装すれば良いです。
個の最短距離を出すのがちょっと大変かも(?)
は少し複雑で、辺 を削除したとき、頂点 の最短距離の候補は
- 元の の最短距離
- の最短距離
- の最短距離
の三通りあります。
これらを全て調べるとこの問題に答えることができて、時間計算量は になります。