1540.最长递增子序列的长度
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
给定一个序列,求它的最长递增子序列的长度
输入
先输入一个正整数n,表示序列的长度,再输入n个整数表示这个序列
输出
输出它的最长递增子序列的长度
#include <iostream>
using namespace std;
int n;
int a[10001];
int maxn;
int memo[10001];
int dp(int m);
int main()
{
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a[i];
}
cout<<dp(0)<<endl;
return 0;
}
int dp(int m)
{
maxn=1;
for(int i=0; i<n; i++)
{
memo[i]=1;
for(int j=0; j<i; j++)
{
if(a[j]<a[i])
{
memo[i]=max(memo[i], memo[j]+1);
}
}
maxn=max(maxn, memo[i]);
}
return maxn;
}
【2018/11/20后记】
1、本题和【防卫导弹】一模一样,只不过把【非递增】改成了【递增】而已。