4
#include <iostream> using namespace std ; int main () { int a [ 1001 ],b ,c [ 1001 ],d ,e ,i ,j ; cin >>b ; c [ 1 ]= 1 ; for (i = 1 ;i <=b ;i ++) cin >>a [i ]; for (i = 2 ;i <=b ;i ++) { d = 0 ; for (j = 1 ;j <i ;j ++) { if (a [i ]>a [j ]) { if (c [j ]>d ) d =c [j ]; } } c [i ]=d +1 ; } e = 0 ; for (i = 1 ;i <=b ;i ++) { if (e <c [i ]) e =c [i ]; } cout <<e ; } 这个题即求出从第二位开始每一位的最长上升子序列