题解 | #跳跳跳#

跳跳跳

https://ac.nowcoder.com/acm/problem/227595

#include<iostream>
using namespace std;
int n;
int a[4010];
int dp[4010][4010];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=n+1;i<=2*n;i++) a[i]=a[i-n];
    for(int len=1;len<=n;len++)
    {
        for(int i=1;i<=2*n-len+1;i++)
        {
            int j=i+len-1;
            dp[i][j]=max(dp[i+1][j]+a[i]*len,dp[i][j-1]+len*a[j]);
        }
    }
    int maxn=-1;
    for(int i=1;i<=2*n;i++) 
        maxn=max(maxn,dp[i][i+n-1]);
    cout<<maxn;
}
全部评论

相关推荐

10-10 17:54
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务