20pts求助
查看原帖
20pts求助
945742
hexuchen楼主2024/3/15 18:35
#include <bits/stdc++.h>
using namespace std;
int n,s[1001],dp[1001][1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=i;j>=1;j--){
			int sum=0;
			for(int k=j;k<=i;k++){
				sum+=s[k];
			}
			if(j+1==i){
				dp[j][i]=sum;
			}
			else{
				dp[j][i]=min(dp[j+1][i],dp[j][i-1])+sum;
			}
			//cout<<j<<' '<<i<<endl; 1 2
		}
	}
	cout<<dp[1][n]<<endl;
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<dp[i][j]<<' ';
		}
		cout<<endl;
	}*/
	return 0;
}
/*
13
7
8
16
21
4
18
*/ 

样例没过。其实本来是要提交这道题的。程序写出来的表和老师的表一样,但样例没过。

2024/3/15 18:35
加载中...