循环顺序不同WA
查看原帖
循环顺序不同WA
105820
阿尔托莉雅丶楼主2021/1/23 16:03

注释部分是错的

想不明白为什么想不明白为什么

#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;
}
2021/1/23 16:03
加载中...