#include <bits/stdc++.h>
using namespace std;
const int maxn = 310;
int n;
int a[maxn];
int f[maxn][maxn];
int sum[maxn];
int main()
{
cin >> n;
for (int i = 1; i <= n; i ++) cin >> a[i];
memset(sum, 0, sizeof sum);
sum[1] = a[1];
for (int i = 2; i <= n; i ++) sum[i] = sum[i-1] + a[i];
memset(f, 0x3f, sizeof f);
for (int i = 1; i <= n; i ++) f[i][i] = 0;
for (int k = 2; k <= n; k ++)
for (int i = 1; i <= n && i <= n - k + 1; i ++)
{
int en = i + k - 1;
for (int j = 1; j < en; j ++)
f[i][en] = min(f[i][en], f[i][j] + f[j + 1][en]);
f[i][en] += sum[en] - sum[i-1];
}
cout << f[1][n];
return 0;
}
acwing 282
最新推荐文章于 2025-04-25 23:48:06 发布