给同学看的
2024-08-19 08:46:49
发布于:北京
#include<bits/stdc++.h>
using namespace std;
int dp[2010][2010];int a,b;int aa[10000];
int dpp(int i,int c){
if(i<=0)return 0;
if(dp[i][c]!=-1)return dp[i][c];
if(c<a-i+1)return dp[i][c]=dpp(i-1,c);
return dp[i][c]=max(dpp(i-1,c),dpp(i-1,c-(a-i+1))+aa[i]*i);
}
int main(){
freopen("love.in","r",stdin);
freopen("love.out","w",stdout);
cin>>a>>b;memset(dp,-1,sizeof(dp));
for(int i=1;i<=a;i++){
cin>>aa[i];
}
//for(int i=1;i<=a;i++){
// for(int j=b;j>=(a-i+1);j--){
// dp[j]=max(dp[j-1],dp[j-(a-i+1)]+aa[i]);
// }
//}
cout<<dpp(a,b);
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也
有帮助,赞一个