#include<cstdio>
#include<iostream>
using namespace std;
long long n,a[202],f[202][202],ans;
int main(){
cin>>n;for(int i=1;i<=n;i++)cin>>a[i],a[i+n]=a[i];
for(int j=2;j<2*n;j++)
////for(int i=1;i<j;i++)
//for(int i=j-1;i>=1;i--)
for(int k=i;k<j;k++)
f[i][j]=max(f[i][j],a[i]*a[k+1]*a[j+1]+f[i][k]+f[k+1][j]);
for(int i=1;i<=n;i++)ans=max(ans,f[i][i+n-1]);
cout<<ans;
}
这是程序,中间斜杠是我的问题,我写的是4个斜杠的那个for,只能拿1个点。
实在搞不懂了翻了下题解,发现题解1跟我只有这里不一样,他写的是2个斜杠那个,我换了一下就过了,第二层循环从1到j-1和从j-1到1到底有什么不一样?为啥差距会这么大。