30分求调
查看原帖
30分求调
1273257
he_hui楼主2024/8/17 11:27
#include <bits/stdc++.h>
#define long long
using namespace std;
const int N=110;
int s[N],n;
int f[N][N];
int main(){
	memset(f,0x3f,sizeof f);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
		s[i]+=s[i-1];
		f[i][i]=0;
	}
	for(int len=2;len<=n;len++){
		for(int l=1;l+len-1<=n;l++){
			int r=l+len-1;
			for(int k=l;k<r;k++)
				f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]+s[r]-s[l-1]);
		}
	}cout<<f[1][n];
	return 0;
}
2024/8/17 11:27
加载中...