最基本的dp啊,甚至都不需要优化
蓝题有点太夸张了吧
#include<bits/stdc++.h>
using namespace std;
const int N=509;
int n,k,a[N],f[N][N][2];
int max3(int a1,int a2,int a3) {
return max(a1,max(a2,a3));
}
int main() {
cin>>n>>k;
for (int i=1;i<=n;++i) cin>>a[i];
for (int i=1;i<=n;++i)
for (int j=1;j<=k;++j) {
f[i][j][0]=max(f[i-1][j][1],f[i-1][j][0]);
f[i][j][1]=max(f[i-1][j-1][0],f[i-1][j][1])+a[i];
}
int ans=0;
for (int i=1;i<=k;++i)
ans=max3(ans,f[n][i][1],f[n][i][0]);
cout<<ans<<endl;
return 0;
}