摘要: 题目大意:给定一个字符串,要求每次删去其中的回文子序列(可以不连续),问最少删除几次,可以将串清空,例:abb,依次删去bb,a或a,bb 需要2次解法: 比赛的时候考虑了贪心,即每次删去最长的,但存在反例:abcddcbacd,若删去abcddcba,需要3次,其实最少2次,abcdcba,dcd;然后又考虑搜索,syc写了,不过最后没写出来,比赛的时候确实没有想到更好的做法; 正确的做法是状态压缩DP,长度只有16,最多2^16个状态,dp[x]表示x这个状态最少需要多少次,那么dp[x]=min(dp[x],dp[k]),k为x的子集,每个状态的初始值,需要根据其特征来定,如果本身就.. 阅读全文
posted @ 2013-07-31 14:52 sxqqslf 阅读(203) 评论(0) 推荐(0) 编辑