标签:
3
1 2 3
3
那么我们设置一个f[i],表示以第i个数为结尾的最长不下降子序列是多少
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int n,a[5005]; int f[5005]; int dp()//buxiajiang { // if(x==y)return f[x]; for(int i=1;i<=n;i++) { for(int j=1;j<=i-1;j++) { if(a[i]>=a[j]) { f[i]=max(f[i],f[j]+1); } } } } int main() { cin>>n; // memset(f,0,sizeof(f)); for(int i=0;i<=n;i++)f[i]=1; for(int i=1;i<=n;i++)scanf("%d",&a[i]); dp(); sort(f+1,f+1+n); cout<<f[n]; puts(""); return 0; }
标签:
原文地址:http://www.cnblogs.com/gc812/p/5792181.html