1016. 最大上升子序列和
作者:互联网
#include <bits/stdc++.h>
using namespace std;
//最大上升子序列和
//这个就不是LIS的变形了,需要全新分析了。
int n;
const int N = 1010;
int a[N];
int f[N];
int main() {
cin >> n;
for (int i = 1; i <= n; i++)cin >> a[i];
//正向求解 LIS问题
for (int i = 1; i <= n; i++) {
f[i] = a[i];//最大上升子序列(个数) 这里是1,此处是a[i]
for (int j = 1; j < i; j++)
//最大上升子序列(个数) 这里是加1,此处是+a[i]
if (a[i] > a[j]) 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 ", res);
return 0;
}
标签:int,res,namespace,传送门,LIS,序列,1016,上升 来源: https://www.cnblogs.com/littlehb/p/15649288.html