最长不下降子序列和
注意可以不连续
dp[i]为以A[i]结尾的最长不下降子序列的最大值
#include<bits/stdc++.h>
using namespace std;
const int N=1001;
int dp[N],A[N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>A[i];
}
int ans=-1;
for(int i=1;i<=n;i++){
dp[i]=1;
for(int j=1;j<i;j++){
if(A[i]>=A[j]&&dp[j]+1>dp[i]){
dp[i]=dp[j]+1;
}
}
ans=max(ans,dp[i]);
}
cout<<ans;
return 0;
}