http://poj.org/problem?id=1159

题意:给定一个字符,问最少插入多少字符,使该字符串变成回文字符串。

思路:设原字符串序列为X,其逆字符串为Y,则最少插入的字符数=length(X)-X与Y的最长公共子序列的长度。

求LCS的状态转移方程为                   max(dp[i-1][j],dp[i][j-1])   s1[i-1]!=s2[j-1]

dp[i][j] =

dp[i-1][j-1]+1;  s1[i-1]==s2[j-1];

由于数据范围大,本题使用的滚动数组。

 #include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <sstream>
#include <cstring> using namespace std;
int dp[][];
int main()
{
string s1,s2;
int n;
while(cin>>n)
{
cin>>s1;
s2 = s1;
reverse(s1.begin(),s1.end());
memset(dp,,sizeof(dp));
for (int i = ; i <= n; i ++)
{
for (int j = ; j <= n; j ++)
{
if (s1[i-]==s2[j-])
dp[i%][j] = dp[(i-)%][j-]+;
else
dp[i%][j] = max(dp[(i-)%][j],dp[i%][j-]);
}
}
int ans = n-dp[n%][n];
cout<<ans<<endl;
}
return ;
}

最新文章

  1. Delphi XE6 原生解析json
  2. 通过刷bios的方式在win8.1平板上启动windows phone模拟器
  3. 161116、springmvc自己实现防止表单重复提交(基于注解)
  4. adb shell 查找并删除文件
  5. iOS点击cell查看大图,点击大图还原小图-b
  6. Scut:Redis 资源管理器
  7. 第十二篇 C# 将HTML 直接转成Excel
  8. Rem与Px的转换[转载]
  9. 让44.1版本的sketch打开更高版本的sketch文件
  10. .net 简单任务调度平台安装简要说明
  11. C#基础之访问修饰符
  12. linux下usb转串口驱动分析【转】
  13. js 弹窗广告24小时显示一次
  14. django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)
  15. Unity 动画系统 Animation 和 Animator的小实例
  16. Java Swing界面编程(21)---事件处理:窗口事件
  17. Redis的主从同步手动执行故障切换
  18. LCA 【bzoj1787】[Ahoi2008]Meet 紧急集合
  19. PYTHON调用C接口(基于Ctypes)实现stein算法最大公约数的计算
  20. PHP 变量作用域

热门文章

  1. OpenCV:使用OpenCV3随机森林进行统计特征多类分析
  2. WebAPI PUT,DELETE请求404
  3. nagios 安装pnp4nagios插件
  4. CAD保存高版本的dwg(com接口)
  5. java图形验证码实现
  6. 46.颜色+品牌下钻分析时按最深层metric进行排序
  7. Linux - VMware和Centos安装
  8. C语言考试
  9. SCU Right turn
  10. [BZOJ1031][JSOI2007]字符加密Cipher(后缀数组)