二刷提高课,题解目录在这里— 提高课的题解目录
我们已经会了如何用N^2复杂度求出最长上升子序列了
那么如何求出最大上升子序列和呢?很简单将本来加一改为加自己的值a[i]即可
#include<iostream>
using namespace std;
int f[1010],a[1010];
int main()
{
int n;
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;
}
什么是最大上升子序列
像100 1 2 3 4,它的最大上升子序列和为100,而最长上升子序列为4
但是我看你刷的题挺多啊, 我以为有什么高深的知识,太简单了哈哈哈
太菜了~~~