Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳送門
文章目錄
- 題意:
- 思路:
題意:
思路:
通過完美子串的定義,我們不難發現滿足條件的子串就是kmpkmpkmp中ne[n]ne[n]ne[n]不斷向前跳得到的串,現在問題就是如何求這些前綴串在串中出現的次數了。
考慮一個前綴iii,那么一直暴跳ne[i]ne[i]ne[i],能跳到的前綴都需要加上前綴iii的出現次數。顯然不能直接跳,所以考慮dpdpdp,dp[i]dp[i]dp[i]表示前綴iii的出現次數,那么轉移方程就是dp[ne[i]]+=dp[i]dp[ne[i]]+=dp[i]dp[ne[i]]+=dp[i]
這樣就可以避免暴跳了。
復雜度O(N)O(N)O(N)
總結
以上是生活随笔為你收集整理的Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下使用锐捷客户端连接校园网-
- 下一篇: 2018年ML/AI重大进展有哪些?Le