poj2533(最長増加部分列テンプレートの質問)

1.番号が1つしかない状況を考えます。
2.データに0の数字が入力されていないようです。

#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define MAX 1010
int a[MAX];
int dp[MAX];
int n;
int LIS()
{
    
    
    int max_=1;
    for(int i=2;i<=n;i++)
    {
    
    
        dp[i]=1;
        for(int j=1;j<i;j++)
        {
    
    
            if(a[i]>a[j]&&dp[i]<dp[j]+1)
            {
    
    
                dp[i]=dp[j]+1;
                if(max_<dp[i])
                {
    
    
                    max_=dp[i];
                }
            }
        }
    }
    return max_;
}
int main()
{
    
    
    dp[1]=1;
    while(scanf("%d",&n)==1)
    {
    
    
        for(int i=1;i<=n;i++)
        {
    
    
            scanf("%d",&a[i]);
        }
        printf("%d\n",LIS());
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/mingjiweixiao/article/details/113524181