讨论 / 谁能帮我看虾 5 能量项链,我到底是错哪了....
yujingping 2012-03-02 00:28:00
点我顶贴 收藏 删除
#include<stdio.h>

int max(int a,int b)

{

return a>=b? a : b;

}

long int a[500][3],f[500][500],n,ans;

int main()

{

scanf("%d",&n);

long int i,j,k,l,r;

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

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

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

a[i][2]=a[i+1][1];

a[n][2]=a[1][1];

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

{

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

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

}

for(l=1;l<n;l++)

for(r=1;r<=n;r++)

{

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

if(f[r][r+l]<f[r][k]+f[k+1][r+l]+a[r][1]*a[k+1][1]*a[r+l][2])

f[r][r+l]=f[r][k]+f[k+1][r+l]+a[r][1]*a[k+1][1]*a[r+l][2];

}

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

{

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

}

printf("%ld",ans);

return 0;

}

对五个点错五个点,但都是瞬杀。

看了好多遍总感觉这方程没错啊......

新手,没有多少分,聊表谢意!!

查看更多回复
提交回复