1 solutions

  • 1
    @ 2025-5-24 16:25:55
    #include <bits/stdc++.h>
    using namespace std;
    int n;long long a[10001],dp[1001][1001],sum[10001];
    int main(){
    	scanf("%d",&n);
    	for(int i = 1;i<=n;i++){
    		scanf("%d",&a[i]);
    		sum[i]+=sum[i-1]+a[i];
    	}
    	for(int len = 2;len<=n;len++)
    		for(int i = 1;i+len-1<=n;i++){
    			int j = i+len-1;
    			dp[i][j] = 0x3f3f3f3f;
    			for(int k = 1;k<j;k++)dp[i][j] = min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);
    		}
    	printf("%d",dp[1][n]);
    	return 0;
    }
    

    Information

    ID
    697
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    30
    Accepted
    4
    Uploaded By