#include<iostream>
#include <cstdio>
using namespace std;
int a[2000];
int LIS(int a[],int n)
{
int i,j;
int ans=1;
int m=0;
int *dp=new int[n+1];
dp[1]=1;
for(i=2;i<=n;i++)
{
m=0;
for(j=1;j<i;j++)
{
if(dp[j]>m&&a[j]<a[i])
m=dp[j];
}
dp[i]=m+1;
if(dp[i]>ans)
ans=dp[i];
}
return ans;
}
int main ()
{
int n;
int i;
int finalmax=0;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
printf("%d\n" ,LIS(a,n));
return 0;
}
poj 2533 LCS
最新推荐文章于 2020-03-02 17:08:49 发布