nile - ナイルドットコム (Nile.Com) Editorial by Mitsubachi


\(3\) 日以上前に買った物の種類はその日の購入値段に影響を与えません。また、購入値段に影響を与えるのは直前に買った物を何日連続で買っているか (これが \(3\) 日以上連続ならば \(2\) 日連続とみなしてもよい) ということを考えると、 \(dp[i][j][k]\) \(:=\) \(i\) 日目に商品 \(j\) を購入かつ、現在 \(j\)\(i\) 日目含め \(\min \left( 2,k \right)\) 連続で買っているとしたときの最小値段とするDPを考えられます。
遷移において、あらかじめ \(i = x\) であるDPの最小値を \(O(N)\) で求めておくと、 \(i = x+1,k=1\) であるDPの値はそれぞれ \(O(1)\) で求められ、 \(k = 2\) の場合は明らかに買うものが決まっているので、全体で \(O(ND)\) でDPをすることができます。

posted:
last update: