#include <bits/stdc++.h> using namespace std; #define INF 0x7fffffff int c[1100]; int dp[1100][1100]; int sum[1100]={0}; int main() { int n,j; cin>>n; for(int i=1;i<=n;i++) { cin>>c[i]; sum[i]=sum[i-1]+c[i]; } for(int L=1;L<=n-1;L++) { for(int i=1;i<=n-L;i++) { j=i+L; dp[i][j]=INF; for(int k=i;k<j;k++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); } } cout<<dp[1][n]<<endl; return 0; }
原文:http://www.cnblogs.com/a249189046/p/6670195.html