Generating Palindromes LightOJ - 1033

题意:添加最少的字符使得给出的字符串成为回文串。输出添加的字符数。

方法:常规区间dp。ans[i][j]表示使得ans[i][j]成为回文串最少添加的字符数。如果i和j位置的字符相等那么ans[i][j]=ans[i+1][j-1],否则要么左边去掉一个,要么右边去掉一个,就是$min(get(l,r-1),get(l+1,r))+1$。

错误记录:和cf607b以及poj1141搞混。那两道题不需要添加字符成为回文串,只需要配对。也就是多个回文串并列也可以,不一定要整个回文串。这道题不一样。

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[];
int n,y,T,TT;
int ans[][];
int get(int l,int r)
{
if(l>=r) return ;
if(ans[l][r]!=0x3f3f3f3f) return ans[l][r];
if(a[l]==a[r]) return ans[l][r]=get(l+,r-);
return ans[l][r]=min(get(l,r-),get(l+,r))+;
}
int main()
{
scanf("%d",&T);
for(TT=;TT<=T;TT++)
{
scanf("%s",a+);
memset(ans,0x3f,sizeof(ans));
printf("Case %d: %d\n",TT,get(,strlen(a+)));
}
return ;
}

Generating Palindromes LightOJ - 1033的更多相关文章

  1. LightOJ 1033 Generating Palindromes(dp)

    LightOJ 1033  Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  2. 1033 - Generating Palindromes

    1033 - Generating Palindromes    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit ...

  3. Light OJ 1033 - Generating Palindromes(区间DP)

    题目大意: 给你一个字符串,问最少增加几个字符使得这个字符串变为回文串.   ============================================================= ...

  4. lightoj 1033 区间dp

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1033 #include <cstdio> #include <cst ...

  5. Making Huge Palindromes LightOJ - 1258

    题目链接:LightOJ - 1258 1258 - Making Huge Palindromes   PDF (English) Statistics Forum Time Limit: 1 se ...

  6. LightOJ1033 Generating Palindromes(区间DP/LCS)

    题目要计算一个字符串最少添加几个字符使其成为回文串. 一年多前,我LCS这道经典DP例题看得还一知半解时遇到一样的问题,http://acm.fafu.edu.cn/problem.php?id=10 ...

  7. lightoj 1033【区间DP/LCS】

    题意: 给你一个长度<=100的字符串. 然后你可以在任何位置插入字符,问最少插入几个构成回文. 思路: 1.长度-LCS: 2.区间DP; 我保证小的区间是一个回文,然后枚举区间,构成大区间, ...

  8. lightoj刷题日记

    提高自己的实力, 也为了证明, 开始板刷lightoj,每天题量>=1: 题目的类型会在这边说明,具体见分页博客: SUM=54; 1000 Greetings from LightOJ [简单 ...

  9. dp百题大过关(第一场)

    好吧,这名字真是让我想起了某段被某教科书支配的历史.....各种DP题层出不穷,不过终于做完了orz 虽然各种手糊加乱搞,但还是要总结一下. T1 Monkey Banana Problem    这 ...

随机推荐

  1. Javascript对象的技巧和陷阱

    创建对象的3种方法 方法1 直接创建 var obj = { name: "mike", age: 10 } 方法2 用new创建 var ob = new Date(); 方法3 ...

  2. grunt简单教程

    Grunt简单教程 1.grunt简单介绍 Grunt是一个基于任务的命令行工具.依赖于node.js环境. 它能帮你合并js文件,压缩js文件,验证js.编译less,合并css.还能够配置自己主动 ...

  3. POJ 1182 食物链(并查集)

    题目链接 经过宝哥的讲解,终于对这种问题有了进一步的理解.根据flag[x]和flag[y]求flag[tx]是最关键的了. 0吃1,1吃2,2吃0. 假设flag[tx] = X; 那么X + fl ...

  4. 更多的使用自定义元素(CustomElement)。

    更多的使用自定义元素(CustomElement).

  5. thinkphp 防sql注入

    $Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->selec ...

  6. 静态代理、动态代理和cglib代理

    转:https://www.cnblogs.com/cenyu/p/6289209.html 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处 ...

  7. 修改fuse库成功

    使用的是fuse-2.9.2 在lib目录下的helper.c的fuse_main_real函数里打印一句话,然后将fuse库编译并install. 对ssfs进行编译,运行后,出现了打印的那句话! ...

  8. 原:maven+springMVC+mybatis+junit详细搭建过程

    阅读目录 1.  工程目录结构整理清楚 2.  引入依赖包 3. 配置数据库连接属性 4.  配置spring配置文件 5.  java代码编写(model,dao,service层代码) 6.  m ...

  9. npm 基本命令行

    npm是随同NodeJS一起安装的包管理工具. 检查版本 npm -v 升级npm npm install npm -g 使用淘宝镜像升级 cnpm install npm -g npm instal ...

  10. CMake学习记录--list(列表操作命令)

    CMake是一个跨平台的工程管理工具,能方便的把工程转换为vs各个版本.Borland Makefiles.MSSYS Makefiles.NMake Makefiles等工程,对于经常在不同IDE下 ...