Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳送門
文章目錄
- 題意:
- 思路:
題意:
思路:
之前做過類似的題,翻轉一個字串相當于將任意兩個不相交的串連在一起。再一看字符集≤20\le20≤20,那就是鐵子集dpdpdp了。
定義f[i]f[i]f[i]表示狀態(tài)為iii的串的長度,那么預處理的時候需要預處理出來所有相鄰且不含相同字符的串,這個顯然可以在n?20n*20n?20的復雜度內(nèi)做到。
之后就是套路了,我們將子集信息向上傳,讓后答案就是f[i]+f[((1<<20)?1)xori]f[i]+f[((1<<20)-1) \ \ xor\ \ i ]f[i]+f[((1<<20)?1)??xor??i]。
總結
以上是生活随笔為你收集整理的Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018年ML/AI重大进展有哪些?Le
- 下一篇: 通知|百度1+X区块链系统应用与设计职业