30 分区间 dp,悬关,求调!
查看原帖
30 分区间 dp,悬关,求调!
842408
pangyuchen75楼主2024/1/13 11:11

具体 代码 如下:

#include <cstdio>
#include <algorithm>
#define N 40005
using namespace std;

const int inf = 0xfffffff; 

int n;
int a;
int sum[N];
int f[N][N];

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		scanf("%d", &a);
		sum[i] = sum[i - 1] + a;
		for(int j = 1; j <= n; ++j)
			f[i][j] = inf;
		
		f[i][i] = 0;
	}
	
	for(int i = n; i > 0; --i)
		for(int j = i + 1; j <= n; ++j)
			for(int k = i; k < j; ++k)
				f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j] + sum[j] - sum[i - 1]);
	
	printf("%d\n", f[1][n]);
	
	return 0;
}

先看我的提交记录请戳这里

2024/1/13 11:11
加载中...