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

浙公网安备 33010602011771号