从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);
    }
}

 

相关文章:

  • 2018-07-29
  • 2021-10-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-31
  • 2021-11-07
  • 2022-12-23
  • 2021-10-11
相关资源
相似解决方案