首页 > 代码库 > Poj 1159

Poj 1159

题意;5Ab3bd加上多少个字符可以是字符串为回文串#include<iostream>using namespace std;short dp[5005][5005];char s1[5005],s2[5005];int fmax(int x,int y){	if(x>y) return x;	return y;}int main(){	int n;	int i,j;	while(scanf("%d",&n)!=EOF)	{		scanf("%s",s1+1);		for(i=n;i>=1;i--)			s2[i]=s1[n-i+1];		memset(dp,0,sizeof(dp));		for(i=1;i<=n;i++)//s1的标号			for(j=1;j<=n;j++)//s2的标号			{				if(s1[i]==s2[j])					dp[i][j]=dp[i-1][j-1]+1;				else 					dp[i][j]=fmax(dp[i-1][j],dp[i][j-1]);			}		printf("%d\n",n-dp[n][n]);	}	return 0;}