时间限制: 10 s
 空间限制: 256000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

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

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

4
4 4 5 9

样例输出 Sample Output

43
54

数据范围及提示 Data Size & Hint

经典的区间动态规划。

 #include <algorithm>
#include <cstdio>
#define N 1015 using namespace std; bool if_;
char ch;
int n,num[N];
int maxn,minn=1e7;
int f_max[N][N],f_min[N][N]; void read(int &x)
{
if_=;x=;
ch=getchar();
while(ch<''||ch>'')
{
if(ch=='-') if_=;
ch=getchar();
}
while(ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
if(if_) x=(~x)+;
} int main()
{
read(n);
for(int i=;i<=n;i++)
read(num[i]),num[i+n]=num[i],num[i]+=num[i-];
for(int i=n+;i<=n*;i++) num[i]+=num[i-];
for(int i=;i<=n;i++)
f_min[i][i]=f_max[i][i]=;
for(int len=;len<=n;len++)
for(int i=*n-len;i>=;i--)
{
int j=len+i-;
f_min[i][j]=1e7;
f_max[i][j]=;
for(int k=i;k<j;k++)
{
f_min[i][j]=min(f_min[i][j],f_min[i][k]+f_min[k+][j]+num[j]-num[i-]);
f_max[i][j]=max(f_max[i][j],f_max[i][k]+f_max[k+][j]+num[j]-num[i-]);
}
}
for(int i=;i<=n;i++)
{
if(f_min[i][i+n-]<minn) minn=f_min[i][i+n-];
if(f_max[i][i+n-]>maxn) maxn=f_max[i][i+n-];
}
printf("%d\n%d",minn,maxn);
return ;
}

最新文章

  1. 学习ASP.NET MVC(八)——“Code First Migrations ”工具
  2. Javascript 学习之路:鼠标长按事件
  3. sublime删除安装的插件
  4. Hibernate——主键配置
  5. Android sqlite数据库存取图片信息
  6. phonegap apk
  7. TableLayout中怎么填充相同的布局
  8. 2016 Technology
  9. 现代3D图形编程学习--opengl使用不同的缓存对象(译者添加)
  10. Discuz 7.2 faq.php漏洞分析
  11. [2014-08-24]为 Xamarin Studio 创建的 Asp.Net Mvc 项目配置 gitignore
  12. [收藏] Java源码阅读的真实体会
  13. Linux下的有用命令
  14. 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块
  15. shell编程学习笔记(三):Shell中局部变量的使用
  16. React 学习之路 (一)
  17. 【ES】代码例子
  18. CHARACTER SET
  19. Hadoop学习笔记之三:DataNode
  20. 选择排序法、冒泡排序法、插入排序法、系统提供的底层sort方法排序之毫秒级比较

热门文章

  1. Myeclipse快捷键备忘
  2. EOJ 3031 二进制倒置
  3. 南海区行政审批管理系统接口规范v0.3(规划) 5.投资项目联合审批系统API 5.1.【uploadFile】证件文书附件上传
  4. 计算机网络自顶向下方法第2章-应用层(application-layer).2
  5. BZOJ 4771 主席树+倍增+set
  6. mysql 1862 密码过期
  7. C# WinForm的练习
  8. WebService 服务接口
  9. 文件被占用导致Hive Load文件不成功
  10. 使用光盘作为yum源安装ifconfig等网络命令