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;
}


你可能感兴趣的:(c,动态规划,poj,iostream,ACM-ICPC)