80分求助
查看原帖
80分求助
1070523
ybc2027_yangshoukuo楼主2023/8/30 22:27
#include <bits/stdc++.h>
using namespace std;
int n,a[805],dp[805][805],num[805];
int main(){
	cin >> n;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		num[i]=num[i-1]+a[i];
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=n-i+1;j++){
			int m=j+i-1;
			dp[j][m]=1000000;
			for(int k=j;k<m;k++) dp[j][m]=min(dp[j][k]+dp[k+1][m]+num[m]-num[j-1],dp[j][m]);
		}
	}
	cout << dp[1][n];
	return 0;
} 
2023/8/30 22:27
加载中...