LIS nlogn 模板

大家都很强,可与之共勉。

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 ;
}

你可能感兴趣的:(LIS nlogn 模板)