1 条题解

  • 1
    @ 2023-1-31 20:53:05

    f[i]=max(f[j])+1 且a[j]>a[i] j<i

    #include <iostream>
    using namespace std;
    int n;
    int a[16];
    int f[16];
    int main()
    {
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
        }
        f[1] = 1;
        int max = 0;
        for (int i = 2; i <= n; i++)
        {
            f[i] = 1;
            for (int j = 1; j <i; j++)
            {
                    if (a[j] >= a[i]&&f[j]>=max)
                    {
                        max=f[j];
                        f[i] = f[j] + 1;
                    }
            }
            max = 0;
        }
        for (int i = 1; i <= n; i++)
        {
            if (f[i] > max)
            {
                max = f[i];
            }
        }
        cout << max;
        return 0;
    }
    
    • 1

    信息

    ID
    289
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    (无)
    递交数
    9
    已通过
    2
    上传者