公式

J - Common Divisors Shortest Path Queries 解説 by primenumber_zz


\(Q = 1\) の場合の解説です。

\(i\) \((1 \leq i \leq N)\) に対して、以下の操作を行います。

全ての \(A_i\) の素因数 \(x\) について、

  • 頂点 \(i\) から 頂点 \(N+x\) に重み \(x\) の辺を張る。
  • 頂点 \(N+x\) から 頂点 \(i\) に重み \(0\) の辺を張る。
  • このグラフ上で、\(S\) から \(T\) への最短経路をダイクストラ法を用いて求めれば良いです。

    計算量は、\(O(N \log \max(A) \log( \log \max(A)) \log(N+ \max(A))) \) です。

    投稿日時:
    最終更新: