【题目链接】
动态规划,不懂的话看这篇文章的思路【链接】
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
int i,j,n;
cin>>n;
int dp[1005],maxs[1005];
memset(maxs,0,sizeof(maxs));
for (i=1;i<=n;i++)
cin>>dp[i];
maxs[1]=1;
for (i=2;i<=n;i++)
{
for (j=1;j<i;j++)
{
if (dp[j]<dp[i])
maxs[i]=max(maxs[i],maxs[j]+1);
}
if (maxs[i]==0)
maxs[i]=1;
}
sort(maxs,maxs+n+1);
cout<<maxs[n];
}