POJ 2533 Longest Ordered Subsequence

大致题意:求最长升子序列。

f[i]:前i+1个元素中包括第i+1个的最长升子序列。

 

// Time 32ms; Memory 224K
#include<iostream>

using namespace std;

int main()

{

	int i,j,n,a[1010],f[1010],max;

	cin>>n;

	for(i=0;i<n;i++)

		cin>>a[i];

	f[0]=1;

	for(i=1;i<n;i++)

	{

		f[i]=1;

		for(j=0;j<i;j++) if(a[i]>a[j] && f[i]<=f[j])

		{

			f[i]=f[j]+1;

		}

	}

	max=0;

	for(i=0;i<n;i++) if(max<f[i]) max=f[i];

	cout<<max<<endl;

	return 0;

}


 

 

你可能感兴趣的:(sequence)