POJ 1159 最少添加几个字母构成回文 DP
来源:互联网 发布:薛之谦女装店淘宝店 编辑:程序博客网 时间:2024/05/14 06:56
设原序列S的逆序列为S' ,则这道题目的关键在于,最少需要补充的字母数 = 原序列S的长度 - S和S'的最长公共子串长度http://www.cnblogs.com/en-heng/p/3963803.html#include<iostream>#include<queue>#include<algorithm>#include<stdlib.h>#include<stdio.h>#include<iomanip>#include<string.h>using namespace std;const int MAX=5005;int Len;int F[2][MAX];char Str1[MAX];char Str2[MAX];int main(){ cin.sync_with_stdio(false); while (cin>>Len) { cin>>Str1; for (int i=Len-1;i>=0;i--) Str2[i]=Str1[Len-1-i]; Str2[Len]='\0'; memset(F,0,sizeof(F)); int k=0,ans=0; for (int i=0;i<Len;i++) { for (int j=0;j<Len;j++) { if (Str1[i]==Str2[j]) { F[k][j]=F[k^1][j-1]+1; ans=max(ans,F[k][j]); } else F[k][j]=max(F[k^1][j],F[k][j-1]); } k=k^1; } cout<<Len-ans<<endl; } return 0;}
0 0
- POJ 1159 最少添加几个字母构成回文 DP
- POJ1159 Palindrome(dp加最少字母构成回文字符串)
- POJ 1159 添加最少几个字符可以成回文
- dp问题 添加最少的字符构成回文串
- 添加最少字符数构成使字符串构成回文
- POJ 1159 - Palindrome (DP 添加最少字符使s为回文串)
- poj1159 Palindrome dp 加最少字符构成回文
- UVA11548 DP计算添加多少元素可以构成回文字符串
- 最少插入几个字符可构成回文串(动归+滚动数组)
- 区间dp-添加最少字符成为回文串
- poj 1159(回文串dp)
- 构成回文序列最少要增加多少字符
- 构成回文序列最少要增加多少字符
- uva11584 dp最少回文串划分
- 添加最少字符组成最长回文字串
- 添加最少字符使成为回文字符串
- poj 3280 dp回文
- 算法:动态规划——区间模型之最少添加几个字符使得字符串变成回文串
- HDU 5716 带可选字符的多字符串匹配 ShiftAnd
- M3核内部寄存器基础
- Javaweb面试题(待定)
- collectionView布局原理及瀑布流布局方式
- java遍历map的两种方法
- POJ 1159 最少添加几个字母构成回文 DP
- iOS堆栈的理解和区别
- 算法提高 选择排序( 递归算法)
- POJ 3974 Palindrome Manacher
- Ubuntu 14.04 安装盘制作(U盘)
- HDU 3294 Girls’ research Manacher
- 管程
- epoll使用详解
- [菜鸟笔记--JavaWeb的进阶之路二]