此题其他网站AC,洛谷UKE是为什么
奇怪的马蜂
#include <bits/stdc++.h>
using namespace std;
int a[505];
int dp[505][505];
int main()
{
int n;
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>a[i];
}
memset(dp,0x3f,sizeof(dp));
for (int i=1; i<=n; i++)
{
dp[i][i]=1;
}
for (int i=1; i<n; i++)
{
if (a[i]==a[i+1]) dp[i][i+1]=1;
else dp[i][i+1]=2;
}
for (int len=3; len<=n; len++)
{
for (int i=1; i<=n-len+1; i++)
{
int j=i+len-1;
for (int k=i; k<j; k++)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
}
if (a[i]==a[j])
{
dp[i][j]=min(dp[i][j],dp[i+1][j-1]);
}
}
}
cout<<dp[1][n];
return 0;
}