题意:
就跟题目一样就是求最长的上升序列,dp常规题。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int dp[1100],a[1100];
int main(){int n;while(scanf("%d",&n)!=EOF){for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++){dp[i]=1;for(int j=i-1;j>=1;j--)if(a[i]>a[j]){dp[i]=max(dp[i],dp[j]+1);}}int mx=dp[1];for(int i=2;i<=n;i++)mx=max(mx,dp[i]);printf("%d\n",mx);}}