hdu 1087

水题

最长递增子序列和,dp更好


AC代码:

#include <iostream>
#include <cstring>
#define MAX(a,b) a>b?a:b
using namespace std;
int main()
{
    int i,sum[1000],a[1000],n,j;
    while(cin>>n&&n)
    {
        for(i=1;i<=n;i++)
            {cin>>a[i];
            sum[i]=0;}
        for(i=1;i<=n;i++)
        {
            int flag=0;
            for(j=i-1;j>=1;j--)
            if(a[i]>a[j]&&flag<sum[j])
                flag=sum[j];
            sum[i]=a[i]+flag;
        }
        int Max=sum[1];
        for(i=2;i<=n;i++)
            if(Max<sum[i])  Max=sum[i];
        cout<<Max<<endl;
    }
    return 0;
}


posted @ 2014-12-17 11:06  __夜风  阅读(115)  评论(0编辑  收藏  举报