top1编程
← 返回题目
题解

【基础】最长不下降子序列(LIS)

1 条题解

  • 0
    @ 2026-7-29 0:17:17
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef string ls;
    typedef long double ld;
    typedef char lr;
    ll a[10005];
    ll dt[10005];
    int main(){
    
    	ll n;
    	cin>>n;
    
    	for( int i=0;i<n;i++ ){
    		cin>>a[i];
    		dt[i]=1;
    	}
    	for( int i=0;i<n;i++ ){
    
    		for( int j=0;j<i;j++ ){
    
    			if( a[j]<a[i] ){
    				dt[i]=max(dt[i],dt[j]+1);
    			}
    
    		}
    
    	}
    	sort( dt,dt+n );
    
    	cout<<dt[n-1];
    
    	return 0;
    }
    
    • 1