hdu6212 祖玛(区间DP)

题意

  有一个长度为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,否则不会三消,会先双消

  

原文地址:https://www.cnblogs.com/wmrv587/p/7618327.html