最长上升子序列(最长递增子序列)LIS

1、最长不增子序列,拦截导弹

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<stdlib.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<iomanip> 
using namespace std;
long long dp[1000005];
long long A[1000005];
int main()
{
      int k;
      cin>>k;
      for(int i=1;i<=k;i++)
      {
          cin>>A[i]; 
    }

    long long a=0;
    for(int i=1;i<=k;i++)
    {
          dp[i]=1;
          for(int j=1;j<i;j++)
             if(A[i]<=A[j])
            dp[i]=max(dp[i],dp[j]+1);         
        a=max(a,dp[i]);
    }
    cout<<a<<endl;
    return 0;
} 
原文地址:https://www.cnblogs.com/h694879357/p/12252296.html