ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SDNU 1048.石子合并2(区间合并)

2019-09-07 13:58:17  阅读:217  来源: 互联网

标签:石子 const int sum 1048 合并 maxn SDNU define


Description

有n堆石子排成一圈,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和。已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分。

Input

第一行一个整数n(1 <= n <= 200),表示石子堆数; 第二行n个整数a(1 <= a <= 100),表示每堆石子的个数,这些石子首尾相接排成一圈。

Output

一个整数,表示最小总得分。

Sample Input

5
7 6 5 7 100

Sample Output

175

Source

Unknown
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define eps 1e-9
#define pi acos(-1)

const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 1000 + 8;

int n, a[maxn], sum[maxn], dp[maxn][maxn], mi;

int main()
{
    std::ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> n;
    sum[0] = 0;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        sum[i] += a[i] + sum[i - 1];
    }
    for(int len = 1; len <= n; len++)
    {
        for(int i = 1; i <= n; i++)
        {
            int en = (i + len) % n == 0 ? n : (i + len) % n;
            int tmp;
            if(i + len <= n)
                tmp = sum[i + len] - sum[i - 1];
            else
                tmp = sum[n] - sum[i - 1] + sum[(i + len) % n];
            dp[i][en] = inf;
            for(int k = 0; k < len; k++)
                dp[i][en] = min(dp[i][en], dp[i][(i + k) % n == 0 ? n : (i + k) % n] + dp[(i + k + 1) % n == 0 ? n : (i + k + 1) % n][en] + tmp);
        }
    }
    mi = dp[1][n];
    for(int i = 2; i <= n; i++)
        if(mi > dp[i][i - 1])
            mi = dp[i][i - 1];
    cout << mi <<'\n';
    return 0;
}

 

标签:石子,const,int,sum,1048,合并,maxn,SDNU,define
来源: https://www.cnblogs.com/RootVount/p/11480394.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有