#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[1000+10],s[1000+10];
ll dp[1000+10][1000+10];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;++i){
scanf("%lld",&a[i]);
s[i]=s[i-1]+a[i];
}
for(int i=1;i<=n;++i)
for(int j=i+1;j<=n;++j)
dp[i][j]=1e9;
for(int len=2;len<=n;++len){
for(int i=1;i<=n-len+1;++i){
int j=i+len-1;
for(int k=i;k<j;++k)
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+s[j]-s[i-1]);
//cout<<dp[i][i+len-1]<<" "<<6666;
}
}
printf("%lld",dp[1][n]);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交