题,题意都挺简单的: 找一个串的和,这个串要求 严格上升的,这个和 要求最大的
这又用到我刚贴的那个 POJ - 2533 题解中 所说的 DP 的算法,往前找满足条件的 和(值)
//#include<bits/stdc++.h>
#include<cstdio>
#include<algorithm>
#include<cstring>
int main()
{
int n;
long long a[1005], v[1005];
while(scanf("%d", &n) && n)
{
memset(v, 0, sizeof v);
long long _max = 0;
for(int i = 0; i < n; ++i)
{
scanf("%lld", &a[i]);
v[i] = a[i];
long long max_ = 0;
for(int j = i - 1; j >= 0; --j)
if(a[i] > a[j] && v[j] > max_) max_ = v[j];
v[i] += max_;
if(v[i] > _max) _max = v[i];
}
printf("%d\n", _max);
}
return 0;
}