POJ2533

#include<iostream>
using namespace std;

int main()
{
	int dp[10001]={0},n,a[10001]={0};
	while(cin>>n)
	{
		for(int i = 1;i<=n;i++) cin>>a[i];
	dp[1] = 1;
	int max,tmp;
	for(int i = 2;i<=n;i++)
	{
		dp[i] = 1;
		for(int j = i-1;j>=1;j--)
		{
			if(a[i] >a[j])
				dp[i] = dp[i]>dp[j]+1?dp[i]:dp[j]+1;
		}
	}
	max = dp[1];
	for(int i = 1;i<=n;i++)
		if(dp[i]>max) max = dp[i];
	cout<<max<<endl;
	}
}

你可能感兴趣的:(poj)