hdu 1257

/*************************************************************************
     File Name: lcs.cpp
     Author: yubo
     Mail: yuzibode@126.com 
     Created Time: 2014年07月12日 星期六 21时30分12秒
     学习重点:
	 test data

8 389 207 155 300 299 170 158 65
3 22 333 4444
7 1 7 3 5 9 4 8
6 300 500 400 400 500 300
 ************************************************************************/

#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int a[1000];
int dp[1000];
int LIS(int a[],int n)
{
	int i,j;
	int ans=1;
	int m=0;
	dp[1]=1;
	for(i=2;i<=n;i++)
	{
		m=0;
		for(j=1;j<=i;j++)
			if(dp[j]>m&&a[j]<a[i])
				m=dp[j];
		dp[i]=m+1;
		if(dp[i]>ans)
			ans=dp[i];
	}
	return ans;

}
int main()
{
	freopen("in.txt","r",stdin);
	int n;
	while(scanf("%d",&n)!=EOF){
		memset(a,0,sizeof(a));
		for(int i=1;i<=n;i++)
			scanf("%d",&a[i]);
	int k=LIS(a,n);
	printf("%d
",k);
	}
}

原文地址:https://www.cnblogs.com/gccbuaa/p/6823411.html