HDOJ1087 Super Jumping! Jumping! Jumping!【逆推】----武科大ACM暑期集训队选拔赛6题

从n-1个数开始逆推求出每个位置能够达到的最大值。
Problem : 1087 ( Super Jumping! Jumping! Jumping! )     Judge Status : Accepted
RunId : 5918414    Language : C    Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include <stdio.h>
int a[1001],b[1001];
int n;
int main()
{
    int i,j,tmax,res;
    while (~scanf("%d",&n))
    {
        if(n==0)
            break;
        for (i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            b[i]=-1;
        }
        res=-1;
        for (i=n-1;i>=0;i--)
        {
            tmax=0;
            for (j=i+1;j<n;j++)
            {
                if(a[j]>a[i]&&b[j]>tmax)
                    tmax=b[j];
            }
            b[i]=a[i]+tmax;
            res=res>b[i]?res:b[i];
        }
        printf("%d\n",res);
    }
}

 

posted @ 2012-05-09 10:36  ZH奶酪  阅读(247)  评论(0编辑  收藏  举报