想不明白为什么
#include <iostream>
using namespace std;
const int N = 260;
int n;
int a[N], f[N][N];
int main(void)
{
int ans = 0;
cin >> n;
for(int i = 1; i <= n; i++)
cin >> a[i], f[i][i] = a[i];
// for(int j = 2; j <= n; j++)
// for(int i = 1; i < j; i++)
// {
// for(int k = i; k < j; k++)
// if(f[i][k] == f[k + 1][j] && (f[i][k] != 0))
// f[i][j] = max(f[i][j], f[i][k] + 1);
// ans = max(ans, f[i][j]);
// }
for(int len = 2; len <= n; len++)
for(int l = 1; l <= n - len + 1; l++)
for(int k = l, r = l + len - 1; k < r; k++)
{
if(f[l][k] == f[k + 1][r] && f[l][k])
f[l][r] = max(f[l][r], f[l][k] + 1);
ans = max(ans, f[l][r]);
}
cout << ans;
return 0;
}