题目地址:点击打开链接
思路:求绝对递增子序列的最大和
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;
}