题目描述

在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。

试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.

输入输出格式

输入格式:

数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.

输出格式:

输出共2行,第1行为最小得分,第2行为最大得分.

输入输出样例

输入样例#1:

4
4 5 9 4
输出样例#1:

43
54

区间动态规划

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
inline int min(int x,int y)
{
if(x<y)return x;return y;
}
inline int max(int x,int y)
{
if(y>x)return y;return x;
}
int a[];
int dp_max[][];
int dp_min[][];
int main()
{
int n;
scanf("%d",&n);
memset(dp_max,,sizeof(dp_max));
for(int i=;i<=*n;i++)
for(int j=i+;j<=*n;j++)
dp_min[i][j]=0x7fffffff;
for(int i=;i<=n;i++)scanf("%d",a+i),a[i+n]=a[i];
for(int i=;i<=n*;i++)a[i]+=a[i-];
for(int i=n*-;i>=;i--)
{
for(int j=i+;j<=n*;j++)
{
for(int k=i;k<j;k++)
{
dp_min[i][j]=min(dp_min[i][j],dp_min[i][k]+dp_min[k+][j]+a[j]-a[i-]);
dp_max[i][j]=max(dp_max[i][j],dp_max[i][k]+dp_max[k+][j]+a[j]-a[i-]);
}
}
}
int minn=0x7fffffff;
int maxx=-;
for(int i=;i<=n;++i)
{
minn=min(dp_min[i][i+n-],minn);
maxx=max(dp_max[i][i+n-],maxx);
}
printf("%d\n%d",minn,maxx);
return ;
}

最新文章

  1. asp.net读取模版并写入文本文件
  2. APP逆向常识
  3. 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验
  4. Core Java Volume I — 4.10. Class Design Hints
  5. android 数据存储的四种方式.
  6. Self-numbers 2 - SGU 108
  7. Java学习日记-3 Character和字符串
  8. nginx源码分析——configure脚本
  9. JPush简单Java服务端案例实现
  10. arcgis api for flex 除去 esri map控件中的logo标志
  11. Bean的自动装配
  12. delphi 子窗体只能最小化不能关闭的解决方案
  13. kafaka quickstart
  14. 【翻译】Context should go away for Go 2
  15. Android中控制Dialog呈现的时间
  16. const引用返回值
  17. tp5月统计的bug
  18. Springboot集成SpringData JPA
  19. vc 获得调用者的模块名称
  20. img = img1*mask + img2*(1-mask) How do that ?

热门文章

  1. COGS:313. [POI2001] 和平委员会
  2. 洛谷P1553数字反转升级版
  3. Excel动画教程50例(二)
  4. python(或BAT脚本)自动执行adb&#160;shell以后的命令
  5. apizza导出为html后,从中提取api_name/api_path/api_method,保存到本地,方便根据接口名称得到接口路径与请求方法
  6. git:多个sshkey配置
  7. c++ primer plus 第6版 部分三 9章 - 章
  8. Leetcode 532.数组中的K-diff数对
  9. 集训队日常训练20181117 DIV2
  10. [错误解决]ubuntu 不在 sudoers 文件中。此事将被报告。