rt
#include<bits/stdc++.h>
using namespace std;
string s;
int dp[51][51];
int main(){
cin>>s;
memset(dp, 0x3f, sizeof(dp));
int n = s.size();
s = ' ' + s;
for (int i = 1;i <= n;i++) dp[i][i] =1;
for (int len = 2;len <= n;len++){
for (int l = 1,r = l + len -1;r <= n;l++,r++){
if (s[l] == s[r]){
dp[l][r] = min(dp[l + 1][r], dp[l][r + 1]);
}
else{
for (int k = l;k < r;k++){
dp[l][r] = min(dp[l][r],dp[l][k] + dp[k + 1][r]);
}
}
}
}
cout << dp[1][n];
return 0;
}
我用这段代码竟然AC了?(s[l]==s[r]判错了)
但是我没有hack数据qwq,求hack