HDU 1087

来源:互联网 发布:tcl 惠州酷友网络 编辑:程序博客网 时间:2024/06/05 00:11
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1005;int n;int a[maxn],b[maxn];int main(){   while(scanf("%d",&n)!=EOF)   {       if(n==0)        break;        memset(b,0,sizeof(b));       for(int i=1;i<=n;i++)       {           scanf("%d",&a[i]);           b[i]=a[i];       }       for(int i=1;i<=n;i++)       {           for(int j=i;j>=1;j--)           {               if(a[j]<a[i])               {                   b[i]=max(max(b[j],0)+a[i],b[i]);               }           }       }       int mm=b[1];       for(int i=2;i<=n;i++)       {           if(mm<b[i])            mm=b[i];       }       printf("%d\n",mm);   }    return 0;}
哈哈,简单的DP,最长上升子序列。


0 0
原创粉丝点击