比赛 假期找点事儿做题吧 评测结果 AAAAAAAAAA
题目名称 回文词 最终得分 100
用户昵称 FFF团 运行时间 0.622 s
代码语言 C++ 内存使用 95.88 MiB
提交时间 2017-06-18 19:20:08
显示代码纯文本
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
const string hhh="老马666";
char s1[5005],s2[5005];
int dp[5005][5005];
int n;
void init(){
	freopen("palin.in","r",stdin);
	freopen("palin.out","w",stdout); 
	scanf("%d\n",&n);
	for(int i=1;i<=n;i++){
		scanf("%c",&s1[i]);
		s2[n-i+1]=s1[i];
	}
}
void work(){
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++){
		if(s1[i]==s2[j])dp[i][j]=dp[i-1][j-1]+1;
		else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
	}
}
void print(){
	printf("%d\n",n-dp[n][n]);
}
int main(){
	init();
	work();
	print();
	return 0;
}