有哪位大佬能出手相助吗?只拿了60分
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int f[51][51];
int main() {
string s;
cin>>s;
int n=s.size();
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
f[i][j]=0x7fffffff/2;
}
}
for(int i=1; i<=n; i++) {
f[i][i]=1;
}
for(int t=2; t<=n; t++) {
for(int i=1; i<=n-t+1; i++) {
int j=i+t-1;
if(s[i]==s[j]) f[i][j]=min(f[i+1][j],f[i][j-1]);
else {
for(int k=i; k<j; k++) {
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
}
}
}
}
printf("%d\n",f[1][n]);
return 0;
}