HDU 1087 Super Jumping! Jumping! Jumping!(求绝对递增子序列的最大和)

题目地址:点击打开链接

思路:求绝对递增子序列的最大和

AC代码:

#include<stdio.h>
int a[1000],dp[1000];
int main()
{
	int n,i,j,ans,max;
	while(scanf("%d",&n) && n)
	{
		for(i=1; i<=n; i++)
		{
			scanf("%d",&a[i]);
		}
		dp[1] = a[1];
		for(i=2; i<=n; i++)
		{
			ans = 0;
			for(j=1; j<i; j++)
			{
				if(a[i]>a[j])
				{
					if(dp[j] > ans)
					{
						ans = dp[j];
					}
				}
				dp[i] = ans + a[i];
			}
		}
		max = a[1];
		for(i=2; i<=n; i++)
		{
			if(dp[i] > max)
				max = dp[i];
		}
		printf("%d\n",max);
	}
	return 0;
}


你可能感兴趣的:(HDU 1087 Super Jumping! Jumping! Jumping!(求绝对递增子序列的最大和))