1 条题解

  • 0
    @ 2024-7-28 15:17:29
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    #include <queue>
    #include <map>
    #include <cstring>
    #include <iomanip>
    #include <vector>
    #include <stack>
    #define LL long long
    using namespace std;
    const int N = 1e3 + 5;
    const int M = 1e6 + 5;
    const int INF = 0x3f3f3f3f;
    int f[N][N];
    int main()
    {
        int n, ans = 0;
        scanf("%d", &n);
        for(int i = 1; i <= n; i++)
    	{
            scanf("%d", f[i] + i);
            ans = max(ans, f[i][i]);
        }
        for(int i = 2; i <= n; i++)
    	{ 
            for(int l = 1; l + i -1 <= n; l++)
    		{
                int r = l + i - 1;
                for(int k = l; 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;
    }
    
    • 1

    信息

    ID
    2249
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    5
    已通过
    5
    上传者