geam1113’s diary

主にAtcoderのコンテストの備忘録を書きます。AtCoder緑と水色を行ったり来たりしています。

ABC218F Blocked Roads

解説なし

 

辺の距離が全て1なので、最短距離、最短パスはBFSで求まります。

BFSはO(N+M)なので、すべての辺が通れないときを計算すると、O(M(N+M))で間に合いません。

 

元のグラフの最短距離が変化するのは、最短パス上の辺が通れなくなった場合だけです。したがって、このときだけBFSして、最短距離を計算し直せばよいです。

 

最短パスに属する辺は、同じ頂点を2度通らないことから、高々N-1個なので、O(N(N+M))となって、間に合います。