讨论 / AC 代码 语文不好请谅解你们自己看代码吧
mochenbo 2017-02-19 16:19:12
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

using namespace std;

int m[201][201],a[201],b[201],n,v=-1000000;

int main()

{

cin>>n;

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

{

cin>>a[i];

b[i-1]=a[i];

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

b[i+n-1]=a[i+n];

}

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

for(int k=i-1;k>=1&&k>=i-n+1;k--)

for(int j=k;j<=i-1;j++)

{

m[k][i]=max(m[k][i],m[k][j]+m[j+1][i]+a[k]*b[j]*b[i]);

}

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

v=max(v,m[i][i+n-1]);

cout<<v;

return 0;

}

#1 mochenbo@2017-02-19 16:20:07
回复 删除
如果不懂可以问我

#2 时与间@2018-05-20 16:25:45
回复 删除
回复 #1 mochenbo:
#3 yekechen5336@2021-05-23 11:51:51
回复 删除
回复 #1 mochenbo:这个是什么意思?

#4 yekechen5336@2021-05-23 11:52:06
回复 删除
#include<iostream>

#include<cstdio>

using namespace std;

int m[201][201],a[201],b[201],n,v=-1000000;

int main()

{

cin>>n;

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

{

cin>>a[i];

b[i-1]=a[i];

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

b[i+n-1]=a[i+n];

}

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

for(int k=i-1;k>=1&&k>=i-n+1;k--)

for(int j=k;j<=i-1;j++)

{

m[k][i]=max(m[k][i],m[k][j]+m[j+1][i]+a[k]*b[j]*b[i]);

}

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

v=max(v,m[i][i+n-1]);

cout<<v;

return 0;

}

查看更多回复
提交回复