2019年4月29日月曜日

ABC 021 C - 正直者の高橋くん

ABC 021 C - 正直者の高橋くん

与えられたグラフの隣接行列をAAとするとき、aaからbbへの距離ddのウォークの総数はAdA^daabb行に一致するので、これを最短距離について求めればよい。繰り返し二乗法をすれば計算量はO(n3logn){\mathcal O}(n^3 \log n)1

最短経路でDAGを作る話をまったく把握していなかったので、なんかおかしいなと思いながら知っている事実を使った。よく考えると、最短経路であることを何も活用していない。


  1. もっとも、この制約ならO(n4){\mathcal O}(n^4)でも間に合う可能性がある。 ↩︎