#include<bits/stdc++.h> using namespace std; int n,a[10001],dp[10001],ans; #1794 // |<- j| //a 3 18 7 14 10 12 23 41 16 24 //dp 1 2 2 3 3 4 5 6 5 6 // //因为14刚进来,咱们只有下面两个选择 //1要选14 // 一开始就是1 // // int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; dp[i]=1; for(int j=i-1;j>=1;j--){ if(a[j]<=a[i]) dp[i]=max(dp[i],dp[j]+1); ans=max(ans,dp[i]); } } cout<<ans; return 0; } /************************************************************** Problem: 1794 User: admin Language: C++ Result: Accepted Time:294 ms Memory:2152 kb ****************************************************************/