从n-1个数开始逆推求出每个位置能够达到的最大值。
Problem : 1087 ( Super Jumping! Jumping! Jumping! ) Judge Status : AcceptedRunId : 5918414 Language : C Author : qq1203456195Code 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);
}
}
转载于:https://www.cnblogs.com/CheeseZH/archive/2012/05/09/2491331.html
相关资源:数据结构—成绩单生成器
转载请注明原文地址: https://win8.8miu.com/read-1494405.html