求条
  • 板块灌水区
  • 楼主Jimmy_Cao
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/15 23:02
  • 上次更新2024/9/15 23:02:58
查看原帖
求条
1351065
Jimmy_Cao楼主2024/9/15 23:02

莫名其妙的报错了

#include<bits/stdc++.h>
using namespace std;
const int N = 40005;
int n, s[N][N], sum[N], dp[N][N];
int main(){
	cin >> n;
	memset (dp, 0x3f, sizeof(dp));
	for (int x, i = 1; i <= n; i++) {
		cin >> x;
		sum[i] = sum[i-1] + x;
		dp[i][i] = 0;
		s[i][i] = i;
	}
	for (int l = 1; l < n; l++)
		for (int i = 1; i + l <= n; i++)
			for (int j=i+l,k=s[i][j-1];k<=s[i+1][j];k++) {
				int kk = dp[i][k] + dp[k + 1][j] + sum[j] - sum[i - 1];
				if (dp[i][j] > kk) {
					s[i][j] = k;
					dp[i][j] = kk;
				}
			}
	cout << dp[1][n];
	return 0;
}
2024/9/15 23:02
加载中...