Codeforces Round #462 (Div. 2) C. A Twisty Movement dp + 思维转换
傳送門(mén)
文章目錄
- 題意:
- 思路:
題意:
給你一個(gè)長(zhǎng)度為nnn的只包含1,21,21,2的序列aaa,你可以至多翻轉(zhuǎn)一段區(qū)間,求翻轉(zhuǎn)之后最長(zhǎng)非遞減子序列是多長(zhǎng)。
思路:
考慮如果翻轉(zhuǎn)的話(huà),翻轉(zhuǎn)的子區(qū)間肯定是222211112222111122221111這種類(lèi)型的,再加上前面可能有111,后面可能有222,那么我們求的最長(zhǎng)子序列的類(lèi)型一定是類(lèi)似于111222111222111222111222111222111222,所以我們只需要求一個(gè)類(lèi)似于這種的序列最長(zhǎng)是多少即可。
定義aaa為111111111類(lèi)型的最長(zhǎng)長(zhǎng)度,bbb為112211221122類(lèi)型的最長(zhǎng)長(zhǎng)度,ccc為112211112211112211類(lèi)型的最長(zhǎng)長(zhǎng)度,ddd為112211221122112211221122類(lèi)型的最長(zhǎng)長(zhǎng)度。
如果當(dāng)前為111,那么a=a+1,c=max(c+1,b+1)a=a+1,c=max(c+1,b+1)a=a+1,c=max(c+1,b+1)。
如果當(dāng)前為222,那么b=max(b+1,a+1),d=max(d+1,c+1)b=max(b+1,a+1),d=max(d+1,c+1)b=max(b+1,a+1),d=max(d+1,c+1)。
直接輸入的時(shí)候轉(zhuǎn)移即可。
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #462 (Div. 2) C. A Twisty Movement dp + 思维转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 长痘应该看中医还是西医
- 下一篇: Codeforces Round #63