题解
2025-08-24 16:24:45
发布于:浙江
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long n,a[1000],dp[1000][1000],s[1000];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j)dp[i][j]=0;
else dp[i][j]=LLONG_MAX;
}
}
for(int i=2;i<=n;i++){
for(int j=1;i+j-1<=n;j++){
long long sum=i+j-1;
for(int k=j;k<sum;k++){
dp[j][sum]=min(dp[j][sum],dp[k+1][sum]+dp[j][k]+s[sum]-s[j-1]);
}
}
}
cout<<dp[1][n];
}
这里空空如也
有帮助,赞一个