AC

神秘的神秘  •  2小时前


include <bits/stdc++.h>

using namespace std;

int dp[201][201] = {0};

int cost[201][201] = {0};

int main() {

int A[201] = {0}, B[201] = {0}, n, m = 1e9, a;
cin >> n;
A[0] = 0;
for (int i = 1; i <= n; i++) {
	cin >> B[i];
	B[i + n] = B[i];
}
for (int i = 1; i <= 2 * n - 1; i++) {
	A[i] = A[i - 1] + B[i];
	dp[i][i] = 0;
}
for (int t = 2; t <= n; t++) {
	for (int i = 1; i <= 2 * n - 1 - t + 1; i++) {
		int j = i + t - 1;
		int x = dp[i][i] + dp[i + 1][j] + A[j] - A[i - 1];
		for (int k = i; k < j; k++) {
			if (x > dp[i][k] + dp[k + 1][j] + A[j] - A[i - 1]) {
				x = dp[i][k] + dp[k + 1][j] + A[j] - A[i - 1];
			}
		}
		dp[i][j] = x ;
	}
}
for (int i = 1; i <= n - 1; i++) {
	m = min(m, dp[i][n + i - 1]);
}
cout << m;
return 0;

}


评论:

请先登录,才能进行评论