讨论 / 题解:so easy
jackey 2017-12-14 03:24:49
点我顶贴 收藏 删除
#include<cstdio>

#include<cstring>

#include<algorithm>

using namespace std;

int f[1100][1100],a[1100];

int main()

{

int n;

scanf("%d",&n);

for(int i=1;i<=n;i++)

{

scanf("%d",&a[i]);

a[i+n]=a[i];

}

for(int i=2;i<2*n;i++)

{

for(int l=1;l+i-1<2*n;l++)

{

int r=l+i-1;

for(int k=l;k<r;k++)

{

f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]+a[l]*a[k+1]*a[r+1]);

}

}

}

int ans=0;

for(int i=1;i<=n;i++)

{

ans=max(ans,f[i][i+n-1]);

}

printf("%d\n",ans);

return 0;

}

查看更多回复
提交回复