1 solutions
-
1
#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