解题说明:
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=105;
const int inf=0x3f3f3f3f;
ll dp[MAXN][MAXN];
int s[MAXN];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&s[i]);
for(int l=3;l<=n;l++){
for(int i=1;i<=n-l+1;i++){
dp[i][i+l-1]=(ll)inf;
for(int k=i+1;k<i+l-1;k++){
dp[i][i+l-1]=min(dp[i][k]+dp[k][i+l-1]+(ll)(s[k]*s[i]*s[i+l-1]),dp[i][i+l-1]);
}
}
}
printf("%lld\n",dp[1][n]);
return 0;
}