#函数调用前,已定义s为list成员数量为MAX_N,
#f同为list,成员数量为MAX_N,每个成员为MAX_N个成员list
def stone_merge(n,a):
for i in range(1,n+1):
s[i] = s[i - 1] + a[i]
for i in range(1,n+1):
for j in range(1,n+1):
if i == j:
f[i][j] = 0
else:
f[i][j] = MAX_F #预定义的值
for l in range(1, n):
for i in range(1, n - l + 1):
j = i + l
for k in range(i,j):
f[i][j] = min([f[i][j],f[i][k] + f[k + 1][j] + s[j] - s[i-1]])
return f[1][n]