比赛 4043级NOIP2022欢乐赛5th 评测结果 AAAAAAAAAA
题目名称 涂色 最终得分 100
用户昵称 op_组撒头屯 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-11-14 21:03:15
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=50+5;
const int inf=0x3f3f3f3f;
int n;
char s[N];
int f[N][N];
int dp(int l,int r){
	if (l==r)return f[l][r]=1;
	if (f[l][r]!=inf)return f[l][r];
	if (s[l]==s[r])f[l][r]=min(f[l][r],min(dp(l+1,r),dp(l,r-1)));
	else{
		for (int k=l;k<=r-1;k++)f[l][r]=min(f[l][r],dp(l,k)+dp(k+1,r));
	}
	return f[l][r];
}
int main(){
	freopen ("tuse.in","r",stdin);
	freopen ("tuse.out","w",stdout);
	scanf("%s",s+1);
	n=strlen(s+1);
	memset(f,0x3f,sizeof(f));
	printf("%d\n",dp(1,n));
	return 0;
}