码迷,mamicode.com
首页 > 其他好文 > 详细

P1063 能量项链

时间:2018-12-15 10:25:32      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:存储   nbsp   ++   简便   max   name   names   div   span   

  思路很清晰:对于dp[i][j]代表以第i个为起始,第j个为结束的最优组合方式,每一次对于其中的一个k进行操作即可。

  还有就是对于环状关系的简便存储方式,只是记得改2*n个点而不是n个。

  代码:

#include<cstdio>
#include<iostream>
using namespace std;
#define maxn 200
int a[maxn],dp[maxn][maxn],n;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        a[i+n]=a[i];
    }
    for(int i=2;i<=n+1;i++)
    {
        for(int l=1;l+i<=2*n;l++)
        {
            int r=l+i;
            for(int k=l+1;k<r;k++)
            dp[l][r]=max(dp[l][r],dp[l][k]+dp[k][r]+a[l]*a[k]*a[r]);
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    ans=max(ans,dp[i][i+n]);
    printf("%d",ans);
    return 0; 
}

 

P1063 能量项链

标签:存储   nbsp   ++   简便   max   name   names   div   span   

原文地址:https://www.cnblogs.com/popo-black-cat/p/10122365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!