大家都很强,可与之共勉。
inline int Lis ( int* s, int n ) {
if ( n == 0 ) return 0 ;
int len ( 1 ) ;
src [1] = s [1] ;
for ( int i = 2 ; i <= n ; ++ i ) {
src [( s [i] > src [len] ) ? ( ++ len ) : ( std :: lower_bound ( src + 1, src + 1 + len, s [i] ) - src )] = s [i] ;
} // >= : upper_bound ;
return len ;
}