uva 10453 - Make Palindrome (区间dp,记忆化搜索)
本文出自 http://blog.csdn.net/shuangde800
题目链接: 点击打开链接
题目大意
给一个字符串,要求添加最少个字符,把它变成回文串,并输出。
思路
简单的区间dp,
f(i, j) 表示区间(i, j) 内的字符串添加的最少个数,变成回文串
那么, 如果str[i]==str[j], f(i, j) = f(i+1, j-1) + 1
f(i, j) = min{f(i+1, j), f(i, j-1)} + 1;
题目要输出方案,那么只要再开一个数组,根据状态转移递归输出即可
代码
记忆化搜索 + 递推的区间dp都有实现