Codeforces 1005D Polycarp and Div 3
生活随笔
收集整理的這篇文章主要介紹了
Codeforces 1005D Polycarp and Div 3
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Codeforces 1005D Polycarp and Div 3
dp[i]表示前i個(gè)數(shù)最多能分成多少塊%3為0,nxt[x]表示x這個(gè)上一次出現(xiàn)的位置。
首先想到 $ dp[i] = max(dp[j]) + 1, (sum[i]-sum[j]) mod 3 == 0$,然后注意到他一定是從最近的那個(gè)滿足條件的位置,也就是nxt[i]轉(zhuǎn)移過來(lái)的,因?yàn)橄啾戎暗奈恢眠@樣一定不會(huì)更糟,所以方程就是 $ dp[i] = max( dp[nxt[i]] + 1, dp[i-1]) $
還有一個(gè)點(diǎn)就是如果當(dāng)前位置模3為0,那么dp[i]一定大于1,忘了這個(gè)轉(zhuǎn)移結(jié)果一致直WA,早點(diǎn)拍就好了。
轉(zhuǎn)載于:https://www.cnblogs.com/RRRR-wys/p/9286901.html
總結(jié)
以上是生活随笔為你收集整理的Codeforces 1005D Polycarp and Div 3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: charles 手机证书下载安装
- 下一篇: 2015 German Collegia