一开始把它当成暴力来做了,即,从终点开始,枚举其最长的回文串,一旦是最长的,马上就ans++,再计算另外的部分。。。结果WA了

事实证明就是一个简单DP,算出两个两个点组成的线段是否为回文,再用LCS的类似做法得到每个子结构的最优值。

#include <cstdio>
#include <cstring>
#define N 1010
char s[N];
int n,len,d[N][N],sum[N];
int min(int a,int b)
{
if (a<b) return a;
return b;
}
int ok(int a,int b)
{
for (int i=a,j=b;i<j;i++,j--)
{
if (s[i]!=s[j]) return ;
}
return ;
}
int main()
{
scanf("%d",&n);
for (int i=;i<n;i++)
{
scanf("%s",s);
len=strlen(s);
int k,q,ans=;
for (int i=;i<len;i++)
{
sum[i]=N;
for (int j=;j<=i;j++)
{
d[j][i]=ok(j,i);
}
}
sum[]=;
for (int i=;i<len;i++)
{
for (int j=;j<=i;j++)
{
//printf("%d %d %d\n",j,i,d[j][i]);
if (d[j][i])
{
int tmp;
if (j>)
{
tmp=+sum[j-];
}
else
tmp=;
sum[i]=min(sum[i],tmp);
}
}
}
printf("%d\n",sum[len-]);
}
return ;
}

最新文章

  1. js连等赋值
  2. Bootstrap_Javascript
  3. asp.net 的page 基类页面 做一些判断 可以定义一个基类页面 继承Page类 然后重写OnPreLoad事件
  4. java 20 -10 字节流四种方式复制mp3文件,测试效率
  5. Java基础-gs(垃圾回收)
  6. WIN API 擦除所绘图像
  7. ApkDec android反编译工具
  8. MySQL数据库MyISAM和InnoDB存储引擎的比较
  9. Maintainable HashCode and Equals Using Apache Commons
  10. pidof,pgrep进程名查PID, /proc目录由pid查进程名
  11. javascript笔记整理(数组对象)
  12. call, apply,bind 方法解析
  13. 什么是副作用(Side Effect)
  14. 前端教程(1)http协议的深刻理解
  15. hrbust 2384 相同的不相同的字符串
  16. [Swift]LeetCode721. 账户合并 | Accounts Merge
  17. Navicat Premium 最新版本12.1.16-64bit 完美破解,亲测可用!
  18. Vue父子传值
  19. MySQL报错解决方案:2013-Lost connection
  20. mysq

热门文章

  1. C语言循环
  2. 007、MySQL日期取当前时间,取昨天
  3. php phar反序列化任意执行代码
  4. 树莓派—raspbian软件源
  5. 吴裕雄--天生自然java开发常用类库学习笔记:一对多关系范例
  6. Redis混合存储-冷热数据识别与交换
  7. c++链接mysql5.7
  8. 实体映射-------AutoMapper
  9. 实验吧-隐写术-黑与白(二)(反转+五笔+Image steganography)
  10. 实验吧-隐写术-刷新 刷新 快刷新(f5-steganography)