sdnuoj 1330

来源:互联网 发布:淘宝如何上架宝贝 编辑:程序博客网 时间:2024/06/05 17:32

1330.Max sum

Description

令sum=ab1+ab2+…+abm,并且满足:ab1<ab2<…<abm;b1<b2<…<bm;1<=m<=n。

第一行,n,表示给定序列的个数。

最大的sum

Sample Input

6
2 4 1 20 5 6

Sample Output

26
动态规划:最大上升子数列
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int a[1010];//valuelong long int sum[1001];int main(){    int n;    while(~scanf("%d",&n)&&n!=0)    {        a[0]=0;        sum[0]=0;        for(int i=1; i<=n; i++)        {            scanf("%d",&a[i]);            sum[i]=a[i];        }        for(int i=1; i<=n; i++)        {            long long int temp=sum[i];            for(int j=i-1; j>=0; j--)            {                if(a[j]<a[i])                {                    if((sum[j]+a[i])>temp)                        temp=sum[j]+a[i];                }            }            sum[i]=temp;        }        long long int maxx=0;        for(int i=1; i<=n; i++)        {            maxx=max(maxx,sum[i]);        }        cout<<maxx<<endl;    }    return 0;}

0 0
原创粉丝点击