Please sign in first.
C - Illuminate Buildings Editorial
by
seekworser
動的計画法を用いてこの問題を解くことができます。
\(dp_{i, j} = \)(数列の先頭が \(i\) 番目で、間隔が \(j\) であるときの最長の数列の長さ)とします。このように定義すると
\[ dp _{i+j, j} = \begin{cases} dp_{i, j} + 1 \quad (\mathrm{if} \ H_{i+j} = H_i)\\ 1 \quad (\mathrm{otherwise}) \end{cases} \]
のように遷移できます。状態数が \(O(N^2)\) 、遷移が \(O(1)\) なので全体で時間計算量は \(O(N^2)\) となります。
posted:
last update:
