POJ 1159 Palindrome DP
来源:互联网 发布:大v店的东西比淘宝贵吗 编辑:程序博客网 时间:2024/06/16 16:29
Palindrome
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 51913 Accepted: 17877
Description
A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determines the minimal number of characters to be inserted into the string in order to obtain a palindrome.
As an example, by inserting 2 characters, the string "Ab3bd" can be transformed into a palindrome ("dAb3bAd" or "Adb3bdA"). However, inserting fewer than 2 characters does not produce a palindrome.
As an example, by inserting 2 characters, the string "Ab3bd" can be transformed into a palindrome ("dAb3bAd" or "Adb3bdA"). However, inserting fewer than 2 characters does not produce a palindrome.
Input
Your program is to read from standard input. The first line contains one integer: the length of the input string N, 3 <= N <= 5000. The second line contains one string with length N. The string is formed from uppercase letters from 'A' to 'Z', lowercase letters from 'a' to 'z' and digits from '0' to '9'. Uppercase and lowercase letters are to be considered distinct.
Output
Your program is to write to standard output. The first line contains one integer, which is the desired minimal number.
Sample Input
5Ab3bd
Sample Output
2
#include<iostream>#include<cstring>using namespace std;int v[2][5005];char c1[5010],c2[5010];int max(int x,int y){return x>y?x:y;}int main(){int n;while(cin>>n){ int i;for(i=1;i<=n;i++){cin>>c1[i];c2[n-i+1]=c1[i];}memset(v,0,sizeof(v));int j;int m=0;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(c1[i]==c2[j])v[i%2][j]=v[(i-1)%2][j-1]+1;elsev[i%2][j]=max(v[(i-1)%2][j],v[i%2][j-1]);if(m<v[i%2][j])m=v[i%2][j];}}cout<<n-m<<endl;}return 0;}
0 0
- dp poj 1159 Palindrome
- POJ 1159 Palindrome DP
- poj 1159 Palindrome 【DP】
- POJ 1159 Palindrome dp
- POJ 1159 Palindrome(DP)
- POJ 1159 Palindrome(DP)
- Palindrome - POJ 1159 dp
- POJ 1159 Palindrome DP
- POJ 1159 Palindrome dp
- POJ-1159-Palindrome -dp
- [POJ 1159]Palindrome[DP]
- poj 1159 dp Palindrome
- poj 1159 Palindrome dp 字符串
- POJ 1159-Palindrome(DP)
- POJ-1159-Palindrome(简单dp)
- POJ-1159 Palindrome (区间dp)
- poj 1159 Palindrome(DP)
- POJ 1159 Palindrome DP 滚动数组
- android小知识1
- BNU 25593 Prime Time 记忆化dp
- html学习笔记(1)
- 2.1.2 获得对象ID
- 程序退出,段错误segment default问题定位
- POJ 1159 Palindrome DP
- 出差新疆一个多月,没有更新博客好久了
- HDU4763 Theme Section 【KMP】
- hdu 2389 Rain on your Parade 二分匹配 HK算法
- Python学习-类和继承
- CodeForces 425D Sereja and Squares
- Ubuntu下非常给力的下载工具--uget+aria2
- 在Android(Java)开发中如何实现类似C语言中的中断程序
- sgu 252 最小费用最大流 题库59