80分,#9和#10WA,其他都AC,求debug
查看原帖
80分,#9和#10WA,其他都AC,求debug
790641
easonlee2004楼主2024/3/23 20:01
#include<bits/stdc++.h>
using namespace std;

const int N=20010;
int n;
int dp[N][N];
int s[N]; //维护一维前缀和

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>s[i];
	for(int i=1;i<=n;i++) s[i]+=s[i-1];
	
	for(int len=2;len<=n;len++)
	{
		for(int i=1;i<=n;i++)
		{
			int l=i,r=i+len-1;
			dp[l][r]=1e6; //放的位置不能放在k循环内
			for(int k=l;k<=r-1;k++)
			{
				dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]+s[r]-s[l-1]);
			}
		}
	}
	
	cout<<dp[1][n];
	return 0;
}
2024/3/23 20:01
加载中...