题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513

解题报告:给定一个长度为n的字符串,在这个字符串中插入最少的字符使得这个字符串成为回文串,求这个最少的个数是多少?

一开始以为只是一个普通的DP题,但是按照我的想法敲出来之后怎么样都W了,无奈搜了解题报告,得知其实这个就是一个最长公共子序列问题,就是求这个字符串跟它的逆序的

字符串的最长公共子序列。因为杭电的题内存都要求在32M内存以内,所以很开心的敲出来才发现10^6的数组都开不了,所以只好寻求空间压缩的方法,一开始就觉得是用滚动数组,但看了很久就是没看出来。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<deque>
#include<map>
#include<queue>
#include<cstdlib>
using namespace std;
const int maxn = 5005;int dp[2][maxn];
char str[maxn];int main()
{int n;while(scanf("%d",&n)!=EOF){scanf("%s",str+1);memset(dp,0,sizeof(dp));int flag = 1;for(int i = 1;i <= n;++i){flag = !flag;for(int j = 1;j <= n;++j){if(str[i] == str[n-j+1])dp[flag][j] = dp[!flag][j-1]+1;else dp[flag][j] = max(dp[!flag][j],dp[flag][j-1]);}}printf("%d\n",n-dp[flag][n]);        }return 0;
}

View Code

转载于:https://www.cnblogs.com/xiaxiaosheng/p/3712650.html

HDU 1513 Palindrome(最长公共子序列)相关推荐

  1. hdu 1159(最长公共子序列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 思路:dp[i][j]表示s1从0~i-1,s2从0~j-1的最长公共子序列: 递推方程为:dp ...

  2. 动态规划—最长公共子序列问题 HDU-1159 Common Subsequence

    动态规划-最长公共子序列问题 Common Subsequence [ HDU - 1159 ] A subsequence of a given sequence is the given sequ ...

  3. LCS最长公共子序列和LIS最长上升子序列——例题剖析

    一.LCS最长公共子序列 最长公共子序列(LCS)问题算法详解+例题(转换成LIS,优化为O(nlogn),看不懂你来打我) longest comment subsequence 模板题 longe ...

  4. HDU1159(dp最长公共子序列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Problem Description A subsequ ...

  5. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...

    作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢 ...

  6. LCS(最长公共子序列)

    题意描述 求两个字符串的最长公共子序列的长度 动态规划 用二维数组 C[i][j] 记录串x1x2⋯xi与y1y2⋯yj 的 LCS长度,则可得到状态转移方程: 代码实现: #include<i ...

  7. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  8. 【动态规划】最长公共子序列与最长公共子串

    1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...

  9. POJ 3080 多个串最长公共子序列

    求多个串最长公共子序列,字典序最小输出.枚举剪枝+kmp.比较简单,我用find直接查找16ms #include<iostream> #include<string> #in ...

最新文章

  1. 通过QuartzCore/CoreAnimation.h实现让玫瑰花飞舞
  2. php显示json,PHP解决JSON中文显示问题
  3. 【数据仓库】OLTP系统和OLAP系统区别
  4. MTK 2G芯片使用联通卡在深圳无法拨打112原因
  5. 你见过使用寿命最长的手机有多少年?
  6. 第六章节 三层架构(二. 模型层与数据访问层)
  7. ios人脸照片_基于iOS用CoreImage实现人脸识别
  8. 基于OMAPL138/C6748 + SPARTAN-6 77GHz汽车防撞雷达信号处理平台设计
  9. 多线程并发编程知识点汇总
  10. Android Framework 音频子系统(11)耳麦插拔之声音通道切换
  11. Leetcode力扣 MySQL数据库 1132 报告的记录II
  12. 常见的文件头信息对照表
  13. Suse linux 关闭防火墙命令,suse防火墙关闭
  14. win10装sql2000卡在选择配置_Win10系统安装Sql Server 2000可能会碰到的问题【解决方法】...
  15. 【图解】什么是拥塞控制,这应该是把拥塞控制讲的最好的文章了
  16. 网页内容繁简体切换(任意页面点击繁体后,其他页面也变成繁体)
  17. C++OpenCV系统学习(17)——图像分割与抠图(6)——视频背景替换
  18. [CTF]中那些脑洞大开的编码和加密
  19. java arraylist 无序_关于Java:按字母顺序排序arraylist(不区分大小写)
  20. Mysql聚集索引和非聚集索引(堆组织表和索引组织表)

热门文章

  1. 网站抓取频率对排名优化有着怎样的意义?
  2. 温度单闭环实验计算机控制,过程控制系统实践指导简介,目录书摘
  3. android okhttp 多线程,android – Okhttp Authenticator多线程
  4. mfc指示灯报警显示_消防百科 | 火灾显示盘的基本功能有哪些?
  5. catia 创成钣金设计_8、钣金件设计-降低钣金成本的设计
  6. LinearLayout测量原理解析:onMeasure(int,int)
  7. 开发日记-20190513 关键词 汇编语言(六)
  8. 开发日记-20190403
  9. lucene .doc文件格式解析——见图
  10. 修改与删除@property封装的数据属性