标签:地方 需要 题意 区间dp 部分 就会 str 判断 祖玛
题意
有一个长度为n的01串,我们可以在某个地方插入一个0或者1,那么如果有连续颜色相同的>=3个,那么这段就会消去,两边的合拢。问将所有01串消去,最少需要插入多少个。(n<=200)
分析
肯定会考虑区间DP
将连续的0或者1缩起来,a[i]表示i位置的个数(要么1个要么2个)
容易分析转移的话有以下两种
1、直接将区间[i,j]分成两半,各自合并,即dp[i][j]=min(dp[i][k]+dp[k+1][j])
2、将中间的一部分合并掉,两边直接对碰消去,即dp[i][j]=min(dp[i+1][j-1]+(a[i]+a[j]<3)
还有一种难想的转移,就是在中间找个k,i j k同色,通过删除[i+1,k-1] [k+1,j-1] 让i j k 三消,这里注意要判断a[i]+a[j]+a[k]<=4,否则不会三消,会先双消
标签:地方 需要 题意 区间dp 部分 就会 str 判断 祖玛
原文地址:http://www.cnblogs.com/wmrv587/p/7618327.html