1016. 最大上升子序列和 - AcWing题库
思路:本题就是简单得最大上升子序列的变化,将长度改为和即可。
ac代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int n;
int f[N], a[N];
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i ++ ) {
scanf("%d", &a[i]);
}
for (int i = 1; i <= n; i ++ ) {
f[i] = a[i];
for (int j = 1; j < i; j ++ ) {
if (a[j] < a[i]) {
f[i] = max(f[i], f[j] + a[i]);
}
}
}
int res = 0;
for (int i = 1; i <= n; i ++ ) res = max(res, f[i]);
printf ("%d\n", res);
return 0;
}
0 条评论