求一个序列中不升子序列的个数,贪心思想。和南京理工大学第八届校赛sequence相似,那个题求的是不降子序列个数,可以看一下加深理解题目链接。
下面是本题代码:
#include <cstdio>
#include <cstring>
#include<iostream>
using namespace std;
const int maxn=30000;
int dp[1010],m;
int main()
{
int n,b;
while(scanf("%d",&n)!=EOF)
{
m=0;
dp[1]=0;
for(int i=0; i<n; i++)
{
scanf("%d",&b);
int j;
for(j=1;j<=m;j++)
{
if(dp[j]>=b)
{dp[j]=b;break;}
}
if(j>m)
{
dp[++m]=b;
}
}
printf("%d\n",m);
}
return 0;
}