动态规划。
代码如下:
1 #include<iostream> 2 #include<cstring> 3 4 using namespace std; 5 6 int main() 7 { 8 int i, j, n, a[1002], len[1002], max; 9 cin >> n; 10 for (i=1; i<=n; i++) 11 { 12 cin >> a[i]; 13 } 14 memset(len, 0, sizeof(len)); 15 len[1]=1; 16 for (i=2; i<=n; i++) 17 { 18 max=0; 19 for (j=i-1; j>=1; j--) 20 { 21 if (max < len[j] && a[i] > a[j]) 22 { 23 max=len[j]; 24 } 25 } 26 len[i]=max+1; 27 } 28 max=0; 29 for (i=1; i<=n; i++) 30 { 31 if (max < len[i]) 32 max=len[i]; 33 } 34 cout << max << endl; 35 return 0; 36 }