ybt 1281 最长上升子序列

最长上升子序列题,非常典型的dp题。
dp方程:f[i]=max(f[i],f[j]+1)。
代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[10001],f[10001];
int n,ans;
int main()
{
	cin>>n;
	for(int i=1;i<=n;++i)
	{
		cin>>a[i];
		f[i]=1;
	
	}
	f[0]=0;
	for(int i=1;i<=n;++i)
		for(int j=0;j<=i;++j)
		{
			if(a[i]>a[j]) f[i]=max(f[i],f[j]+1);
		}
	for(int i=1;i<=n;++i)
	{
		ans=max(f[i],ans);
	}
	cout<<ans<<endl;
	return 0;
}
posted @ 2022-05-04 16:35  离弦  阅读(40)  评论(0)    收藏  举报