3 条题解

  • -1
    @ 2023-4-10 18:16:40
    /*****************************************
    Note:
    ******************************************/
    #include <queue>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const int N = 1e6 + 10;
    const int INF = 0x3f3f3f3f;
    int a[N] , dp[300][300];
    int main()
    {
    	int n ;
    	cin >> n;
    	for(int i = 1 ; i <= n ;i++)
    	{
    		cin >> a[i];
    		a[i] += a[i-1];
    	}
    	for(int k = 2 ; k <= n ; k++)
    	{
    		for(int l = 1 ; l+k -1 <= n ; l++)
    		{
    			int r = l + k - 1;
    			dp[l][r] = INF;
    			for(int i = l ; i < r ; i++)
    			{
    				dp[l][r] = min(dp[l][r] , dp[l][i] + dp[i+1][r] + a[r] - a[l-1]);
    			}
    		}
    	}
    	cout << dp[1][n] << endl;
    	return 0;
    }
    

    信息

    ID
    193
    时间
    5000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    196
    已通过
    64
    上传者