Description
给你一个串 (s),每次可以花费 (1) 的代价删去一个子串,要求子串的每一位为同一个字符。
求删去整个串的最小代价。 (1leq|s|leq 500)
Solution
居然不会了!
发现状态的转移不止与当前区间的端点有关,而且和中间颜色相同的也有关。所以必须枚举中间节点进行转移。
考虑 (dp[l][r]) 表示删完 ([l,r]) 的最小代价。有转移
[dp[l][r]=min(dp[l][k]+dp[k+1][r-1]+[s_k
eq s_r])
]
这样实际上就是同时考虑了中间相同颜色的一起删和分开删的情况。