当前位置: 代码迷 >> 综合 >> tyvj P1049 最长不下降子序列
  详细解决方案

tyvj P1049 最长不下降子序列

热度:48   发布时间:2023-12-11 20:54:16.0
时间: 1000ms / 空间: 131072KiB / Java类名: Main

描述

求最长不下降子序列的长度

输入格式

第一行为n,表示n个数
第二行n个数

输出格式

最长不下降子序列的长度

测试样例1

输入


1 2 3

输出

3

备注

N小于5000
for each num <=maxint


居然把dp都忘了,唉。。。。
基础题,用f数组来存下降序列的长度,a数组保存数字
#include <cstdio>
#include <iostream>
using namespace std;int f[100000],a[100000];int main()
{int n,i,j,k;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);f[i]=1;}for(i=1;i<=n;i++){for(j=1;j<i;j++){if(a[j]<=a[i])f[i]=max(f[j]+1,f[i]);}}int Max=0;for(i=1;i<=n;i++)if(f[i]>Max)Max=f[i];printf("%d\n",Max);return 0;
}