yukicoder No.1308 ジャンプビーコン

問題リンク

解説

公式解説のほうが賢いのでそちらを参考にしてください。

 dp[i][j] := x _ {i} にいて jにビーコンを置いてるときの最短距離

としましょう。

愚直にやると、 O (N ^ 2 Q)ですが、ビーコンを置くのは通るpath上のどこかでいいのでHLDと双対セグ木を用いて、

 O(Q N (\log N) ^ 2)でもとまります

提出コード

yukicoder.me