1 条题解

  • 0
    @ 2024-7-26 16:33:49
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e3+10;
    const int INF=0x3f3f3f3f;
    int n,a[N],dp[N][N],s[N];
    int main()
    {
        cin>>n;
        memset(dp,INF,sizeof(dp));
        for(int i=1;i<=n;i++)
        {
    		cin>>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 end=i+j-1;
    			for(int k=j;k<end;k++) dp[j][end]=min(dp[j][end],dp[j][k]+dp[k+1][end]+s[end]-s[j-1]);
    		}
    	}
    	cout<<dp[1][n];
        return 0; 
    }
    
    • 1

    信息

    ID
    1741
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者