讨论 / C++&记忆式动规&23行
WuK 2015-08-06 20:41:13
点我顶贴 收藏 删除
#include <iostream>

#define maxn 128

using namespace std;

int n,ans=0,a[2*maxn]={0},f[2*maxn][2*maxn]={0};

int work(int l,int r)

{

if(f[l][r])return f[l][r];

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

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

return f[l][r];

}

int main()

{

ios::sync_with_stdio(0);//关闭流同步

cin>>n;

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

{

cin>>a[i];

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

}

for(int i=1;i<=n;++i)ans=max(ans,work(i,i+n-1));

cout<<ans;

}

#1 syc20000213@2015-08-07 00:55:53
回复 删除
写得不错哦 赞!
#2 子鲁子@2015-08-27 03:01:08
回复 删除
能不能用C风格的写法写一下,或者在C++风格的语句中加下注释
查看更多回复
提交回复