題意: 話的長度為n,語句里的字符不是2就是3。 呃喵的智力非常有限,只有m點。她每次操作可以交換兩個相鄰的字符,然而代價是智力-2。 現(xiàn)在問你,在使得自己智力不降為負(fù)數(shù)的條件下,呃喵最多能使這個字符串中有多少個子串”233”呢? 如”2333”中有一個”233”,”232323”中沒有”233” 1 <= n <= 100, 0 <= m <= 100
題解: 一看到正解是
枚舉i+1這個2要轉(zhuǎn)移到中間那一段時,轉(zhuǎn)移的狀態(tài)其實都是f[i+1][j1][k+1][2][0]。而且考慮一下把這個2換到前面,破壞一個答案肯定不是最優(yōu)的。所以特殊的轉(zhuǎn)移只有換一次換到位置i。而中間一段同樣的轉(zhuǎn)移,用個數(shù)組記錄,最后掃一遍就好了。 分析一下3的轉(zhuǎn)移,也有類似的浪費(fèi),同樣的方法處理即可。 于是復(fù)雜度就將到就是寫起來有點惡心
|
新聞熱點
疑難解答