P1435 回文字串
Posted xiongchongwen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1435 回文字串相关的知识,希望对你有一定的参考价值。
题目背景
IOI2000第一题
题目描述
回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。
比如 “Ab3bd”插入2个字符后可以变成回文词“dAb3bAd”或“Adb3bdA”,但是插入少于2个的字符无法变成回文词。
注:此问题区分大小写
输入格式
一个字符串(0<strlen<=1000)
输出格式
有且只有一个整数,即最少插入字符数
输入输出样例
输入 #1
Ab3bd
输出 #1
2
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> using namespace std; int n,dp[5001][5001]; char str1[5001],str2[5001]; int main() scanf("%s",str1+1); n=strlen(str1+1); for(int i=1;i<=n;i++) str2[i]=str1[n-i+1]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(str1[i]==str2[j]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); printf("%d",n-dp[n][n]); return 0;
以上是关于P1435 回文字串的主要内容,如果未能解决你的问题,请参考以下文章