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都有实现

<script src="https://code.csdn.net/snippets/566.js" type="text/javascript"></script>






你可能感兴趣的:(Make)