【Codeforces 1132F】Clear the String

Codeforces 1132 F

题意:给一个串\(S\),问每次删除连续的一段相同字母,最少删几次将原串删空。

思路:考虑区间\(dp\),我们看要删多少次能把\([l,r]\)删空,那么最终答案就是\(dp[0,n]\)

那么就枚举最后一次删除的字符是\(c\)

由于我们可能有\(ababa\)这种情形,不一定只是\(c-\)段间隔起来的区间们需要被单独处理,而是可能是连续的几段,头尾是\(c-\)段即可。

那么就需要另一个\(dp\)。设\(f(i)\)表示到了第几个\(?-\)段,然后转移到\(f(i+j)\),需要在值上加上\(dp[i+1,i+j-1]\)

然后用\(f(r)\)更新\(dp[l,r]\)就好辣

猜你喜欢

转载自www.cnblogs.com/denverjin/p/10503852.html
今日推荐