题意:
。。。
思路:
区间DP入门题
int n, ai[N+5], dp[N+5][N+5];
int main() {
scanf("%d", &n);
for (int i = 0; i < n; ++ i) scanf("%d", ai + i);
const int INF = INT_MAX / 10;
for (int len = 3; len <= n; ++ len)
for (int i = 0; i + len - 1 < n; ++ i) {
int j = i + len - 1;
dp[i][j] = INF;
for (int k = i + 1; k < j; ++ k)
dp[i][j] = min ( dp[i][j], dp[i][k] + dp[k][j] + ai[i] * ai[j] * ai[k] );
}
printf("%d\n", dp[0][n-1]);
return 0;
}