dp0分求调
查看原帖
dp0分求调
1271781
zhangchenyi_awa楼主2025/5/3 10:41
#include <bits/stdc++.h>
using namespace std;
inline void read(int &x) {
	int s=0,w=1;
	char c=getchar();
	while(c<'0'||c>'9') {
		if(c=='-') {
			w=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9') {
		s=s*10+c-'0';
		c=getchar();
	}
	x=s*w;
	return;
}
int n;
int a[310];
int s[310];
int dp[310][310];
int main() {
	memset(dp,0x7f7f7f7f,sizeof(dp));
	read(n);
	for(int i=1; i<=n; i++) {
		read(a[i]);
		s[i]=s[i-1]+a[i];
		dp[i][i]=0;
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=n-i+1;j++){
			int o=j+i-1;
			for(int k=j;k<=o;k++){
				dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+s[j]-s[i-1]);
			}
		}
	}
	printf("%d",dp[1][n]);
	return 0;
}

必关

2025/5/3 10:41
加载中...