全部评论 3

  • #include <bits/stdc++.h>
    using namespace std;
    
    int n, s[1010], f[1010][1010];
    
    int main() 
    {
        cin >> n;
        for (int i = 1; i <= n; i++) 
    	{
            cin >> s[i];
            s[i] += s[i - 1];
        }
        for (int i = 2; i <= n; i++) 
    	{
            for (int j = 1; j + i - 1 <= n; j++) 
    		{
                int l = j, r = j + i - 1;
                f[l][r] = INT_MAX;
                for (int k = l; k <= r - 1; k++) 
    			{
                    f[l][r] = min (f[l][r], f[l][k] + f[k + 1][r] + s[r] - s[l - 1]);
                }
            }
        }
        cout << f[1][n] << endl;
        return 0;
    }
    

    2024-08-17 来自 广东

    0
  • #include<bits/stdc++.h>
    using namespace std;
    
    long long n, m, a[105][105];
    
    int main()
    {
    	cin >> n;
    	for (int i = 1; i <= n; i++)
    	{
    		for (int j = 1; j <= i; j++)
    		{
    			cin >> a[i][j];
    		}
    	}
    	for (int i = n - 1; i >= 1; i--)
    	{
    		for (int j = 1; j <= i; j++)
    		{
    			a[i][j] += max(a[i + 1][j], a[i + 1][j + 1]);
    		}
    	}
    	cout << a[1][1] << endl;
    	
    	return 0;
    }
    

    2024-08-17 来自 广东

    0
  • 用我首发枚举法

    2024-08-16 来自 广东

    0

热门讨论