ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC051 D - Candidates of No Shortest Paths

問題
提出コード

解法

a_i,b_iを距離c_iで通る辺M_iが使用されるには、a_ib_iの最短距離がc_iになっていればいいです。最短距離になっていない場合、a_ib_iを通るより最短距離になっているルートを通る方がいかなる場合にも距離が短くなるため、a_ib_iにおいての最短距離がc_iかどうかだけ調べればよいです。
ということで、辺の状態を保存し、それとは別にワーシャルフロイド法で全ての頂点間の最短距離を求め、最後に保存した辺が最短距離になっているかどうか調べればよいです。
最短距離になっていないものの個数が答えになります。
制約も、頂点の個数が100以下なので、ワーシャルフロイド法が間に合います。