的变式。
状态转移方程: if(ai>aj) fi = max(fi, fj+ai)
#include#include using namespace std;//Mystery_Sky//#define M 1010int maxn, n;int a[M], ans, f[M];int main() { scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%d", &a[i]), f[i] = a[i]; for(int i = 1; i <= n; i++) { for(int j = 1; j < i; j++) { if(a[i] > a[j]) f[i] = max(f[i], f[j] + a[i]); } } for(int i = 1; i <= n; i++) ans = max(ans, f[i]); printf("%d\n", ans); return 0;}