为什么不对??
查看原帖
为什么不对??
490223
Tyh_2楼主2021/3/7 22:01

勿喷

#include<bits/stdc++.h>
using namespace std;
int dp[2005][2005],m[2005],n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m[i];
	}
	dp[1][n]=0;
	for(int len=n-1;len>=1;len--){
		for(int i=1;i+len-1<=n;i++){
			int j=i+len-1;
			int get=n-len;
			dp[i][j]=max(dp[i][j+1]+m[j]*get,max(dp[i][j],dp[i-1][j]+m[i]*get));
		} 
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		ans=max(ans,dp[i][i]+m[i]*n);
	}
	cout<<ans;
	return 0;
}
2021/3/7 22:01
加载中...