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