大致题意:求最长升子序列。
f[i]:前i+1个元素中包括第i+1个的最长升子序列。
// Time 32ms; Memory 224K
#include<iostream> using namespace std; int main() { int i,j,n,a[1010],f[1010],max; cin>>n; for(i=0;i<n;i++) cin>>a[i]; f[0]=1; for(i=1;i<n;i++) { f[i]=1; for(j=0;j<i;j++) if(a[i]>a[j] && f[i]<=f[j]) { f[i]=f[j]+1; } } max=0; for(i=0;i<n;i++) if(max<f[i]) max=f[i]; cout<<max<<endl; return 0; }