题意
LIS
思路
LIS
代码
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
#define N 1005
#define INF 0x7f7f7f7f
using namespace std;
int dp[ N ];
int val[ N ];
int LIS ( int n ) {
int mx = 0;
for ( int i = 0; i < n; ++i ) {
dp[ i ] = 1;
for ( int j = 0; j < i; ++j ) {
if ( val[ j ] < val[ i ] && dp[ i ] < dp[ j ] + 1 )
dp[ i ] = dp[ j ] + 1;
}
if ( mx < dp[ i ] )
mx = dp[ i ];
}
return mx;
}
int main () {
int n;
while ( ~scanf ( "%d", &n ) ) {
for ( int i = 0; i < n; ++i )
scanf ( "%d", &val[ i ] );
int sol = LIS ( n );
printf ( "%d\n", sol );
}
return 0;
}