上链接:杭电1087
题目大意:
找出一串数中的一个和最大的递增子串
答题思路:
DP,最长上升子序列的变化
贴代码:
#include <cstdio>
#include <climits>
using namespace std;
int num[1001], sum[1001];
int main()
{
int n, max;
while(scanf("%d", &n)!=EOF && n)
{
for(int i=0; i<n; ++i)
scanf("%d", &num[i]);
sum[0] = num[0];
for(int i=1; i<n; ++i)
{
sum[i] = num[i];
for(int j=0; j<n; ++j)
if(num[i] > num[j])
if(sum[i] < sum[j] + num[i])
sum[i] = sum[j] + num[i];
}
max = INT_MIN;
for(int i=0; i<n; ++i)
if(max < sum[i])
max = sum[i];
printf("%d\n", max);
}
return 0;
}