代码如下
# include <bits/stdc++.h>
using namespace std;
int m[305]={0};
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>m[i];
}
int dp[305][305]={0};
for(int i=1;i<=n-1;i++)
{
dp[i][i+1]=m[i]+m[i+1];
}
for(int j=3;j<=n;j++)
{
for(int i=1;i<=n-j+1;i++)
{
int sum=0;
for(int a=i;a<=n+j-1;a++)sum+=m[a];
dp[i][i+j-1]=dp[i][i]+dp[i+1][i+j-1]+sum;
for(int k=i;k<i+j-1;k++)
{
dp[i][i+j-1]=min(dp[i][i+j-1],dp[i][k]+dp[k+1][i+j-1]+sum);
}
}
}
cout<<dp[1][n];
return 0;
}