在求最大上升子序列的时候不是加1长度,加的是每个数组的值
#include<iostream> #include<cstring> #include<algorithm> using namespace std ; const int N = 1010 ; int f[N] ; int a[N] ; int n ; int main(){ cin >> n ; for(int i = 1 ; i <= n ; i++) cin >> a[i] ; for(int i = 1 ; i <= n ; i++){ f[i] = a[i] ; for(int j = 1 ; j < i ; j ++){ 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]) ; cout << res << endl ; }