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