**
航电oj:Longest Ordered Subsequence
**
#题目描述
#给你数N 和N个数 求最长顺序数列的长度
#动态规划 答案在变化的过程中
#知识点
动态规划
#代码
#include<cstring>
#include<algorithm>
using namespace std;
int n;
int ans[1005];
int data[1005];
int maxx(int a,int b)
{
return a>b?a:b;
}
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d",&data[i]);
ans[i] = 1;
}
//printf("---------%d\n",data[2]);
//memset(ans,1,sizeof(ans));//不能用这个 为什么 编译器坏了 修一下 先用这个 哦哦 memset 不能置1的
for(int i=2; i<=n; i++)
{
for(int k=1; k<i; k++)
{
if(data[k] < data[i])//前面的比后面的要小
{
ans[i] = maxx(ans[i],ans[k]+1);// 取较大者 跟新
}
}
}
int count =0;
for(int i=1; i<=n; i++)
count = maxx(count,ans[i]);
printf("%d\n",count);
return 0;
}
#总结
要相同 动规要想通就简单了