有没有大佬能帮我看看
查看原帖
有没有大佬能帮我看看
1267849
kingcen楼主2024/9/26 21:15
#include<bits/stdc++.h>
#define maxn 2100
using namespace std;
int n;
int a[maxn];
int dp[maxn][maxn];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	dp[0][0]=0;
	for(int i=1;i<=n;i++)
	{
		dp[i][i]=dp[i-1][i-1]+a[i]*i;
		dp[i][0]=dp[i-1][0]+a[n-i+1]*i;
	}
	//cout<<endl;
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			dp[i][j]=max(dp[i-1][j-1]+a[j]*i,dp[i-1][j]+a[n-(i-1-j)]*i);
			ans=max(ans,dp[i][j]);
			//cout<<i<<' '<<j<<' '<<dp[i][j]<<endl;
		}
		//cout<<dp[i][i]<<endl;
	}
	cout<<ans;//为啥这里不能是dp[n][n]
  return 0;
}
2024/9/26 21:15
加载中...