转移方程和题解去的 duliu 们写的是一样的,但是不知道程序哪里出了问题。有人可以帮忙看看吗 qwq
#include <cstdio>
#include <algorithm>
using namespace std;
int n, a[250], dp[250][250];
int ans;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
for (int i = 1; i <= n; i++) dp[i][i] = a[i];
for (int l = 1; l <= n; l++) {
for (int i = 1, j = l; j <= n; i++, j++) {
for (int k = i + 1; k < j; k++) {
if (dp[i][k] == dp[k + 1][j]) {
dp[i][j] = max(dp[i][j], dp[i][k] + 1);
}
}
ans = max(ans, dp[i][j]);
}
}
printf("%d\n", ans);
return 0;
}