#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std
;
const int max_size
=111;
int p
[max_size
];
int m
[max_size
][max_size
];
int s
[max_size
][max_size
];
int n
;
void matrixchain()
{
int i
;
int j
;
int r
;
int k
;
memset(m
,0,sizeof(m
));
memset(s
,0,sizeof(s
));
for (r
=2;r
<=n
;r
++)
{
for (i
=1;i
<=n
-r
+1;i
++)
{
j
=i
+r
-1;
m
[i
][j
]=m
[i
+1][j
]+p
[i
-1]*p
[i
]*p
[j
];
s
[i
][j
]=i
;
for(k
=i
+1;k
<j
;k
++)
{
int t
=m
[i
][k
]+m
[k
+i
][j
]+p
[i
-1]*p
[k
]*p
[j
];
if(m
[i
][j
]>t
)
{
m
[i
][j
]=t
;
s
[i
][j
]=k
;
}
}
}
}
}
int main()
{
cin
>> n
;
int i
;
int j
;
for (i
=0;i
<=n
;i
++)
{
cin
>>p
[i
];
}
matrixchain();
cout
<<m
[1][n
]<<endl
;
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-493497.html