前面的贴没看懂
求大佬解释
#include<bits/stdc++.h>
using namespace std;
int dp[3001][3001];
int a[3001];
int main()
{
memset(dp,0x3f,sizeof dp);
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i],dp[i][i]=0;
for(int i=1;i<n;i++)
for(int j=1;j+i<=n;j++)
{
dp[j][j+i]=min(dp[j][j+i-1],dp[j+1][j+i])+1;
if(a[j]==a[j+i])
dp[j][j+i]=min(dp[j][j+i],dp[j+1][j+i-1]);
else
dp[j][j+i]=min(dp[j][j+i],dp[j+1][j+i-1]+1);
}
cout<<dp[1][n];
return 0;
}
求大佬解释