题目描述:
dp分析:
解题代码:
#include<iostream>
using namespace std;const int N=1e3+6;int f[N][N];
int a[N];
int s[N];int main(){int n;cin>>n;for(int i=1;i<=n;i++){scanf("%d",&s[i]);s[i]+=s[i-1];//前缀和}for(int i=1;i<n;i++){for(int j=1;j+i<=n;j++){int l=j,r=j+i;f[l][r]=1e8;//初始化为最大值for(int k=l;k<r;k++){f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]+s[r]-s[l-1]);}}}cout<<f[1][n];return 0;
}