题目描述
最大上升子序列的变形。
相当于把增加的1换成了数组的值
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[1000];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int sum[1000];
for(int i=1;i<=n;i++){
sum[i]=a[i];
for(int j=1;j<i;j++){
if(a[j]<a[i]&&sum[j]+a[i]>sum[i]){
sum[i]=(sum[j]+a[i]);
}
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(ans<sum[i]){
ans=sum[i];
}
}
cout<<ans<<endl;
return 0;
} // namespace std;