#define INF 0x7f7f7f7f #define MAXN 100005 #define N 200005 #define P 2 #define MOD 99991
typedeflonglong ll;
namespace fastIO { //char buf[(1 << 22)], *p1 = buf, *p2 = buf; inlineint(){ char c = getchar(); int x = 0, f = 1; while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar(); } while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(); return x * f; } }
usingnamespace fastIO; usingnamespacestd;
int n, m, dp[305][305], A[450];
intmain(){ cin >> n; int x; memset(dp, INF, sizeof(dp)); for (int i = 1; i <= n; i++) { cin >> x; A[i] = A[i - 1] + x; dp[i][i] = 0; } for (int len = 1; len <= n; len++) { for (int l = 1; l + len - 1 <= n; l++) { int r = l + len - 1; for (int k = l; k < r; k++) dp[l][r] = min(dp[l][r], dp[l][k] + dp[k + 1][r] + A[r] - A[l - 1]); } } cout << dp[1][n] << endl; }
近期评论