A. 石子合并<1>

内存限制:128 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统评测 方式:文本比较
 
题目描述

有N堆石子排成一排(n<=100),现要将石子有次序地合并成一堆,规定每次只能选相邻的两堆合并成一堆,并将新的一堆的石子数,记为改次合并的得分,编一程序,由文件读入堆数n及每堆石子数(<=200);

(1)选择一种合并石子的方案,使得做n-1次合并,得分的总和最少

(2)选择一种合并石子的方案,使得做n-1次合并,得分的总和最多

输入格式

第一行为石子堆数n 第二行为每堆石子数,每两个数之间用一空格分隔。

输出格式

从第1行为得分最小第二行是得分最大。

样例输入

4
4 5 9 4
样例输出
44
54

分析:

附上代码(有注释):

 #include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxp=;
int n,t[maxp],//t[i]:第i堆石子的个数
f_min[maxp][maxp],//f_min[i][j]:从i到j的最小得分
f_max[maxp][maxp],//f_max[i][j]:从i到j的最大得分
sum[maxp];//sum[i]:从1到i的石子总和
int main(){
memset(f_min,0x3f,sizeof(f_min));//以上是进行初始值 min要给一个大的值,否则结果0
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d",&t[i]);//以上是输入
for(int i=;i<=n;++i)
sum[i]=sum[i-]+t[i];
for(int i=;i<=n;i++)
f_min[i][i]=; //从i到i的最小合并恰好是0
for(int len=;len<n;len++){
for(int i=;i+len<=n;i++){
int j=i+len;
for(int k=i;k<j;k++){
f_min[i][j]=min(f_min[i][j],f_min[i][k]+f_min[k+][j]);
f_max[i][j]=max(f_max[i][j],f_max[i][k]+f_max[k+][j]);
}
f_min[i][j]+=sum[j]-sum[i-];//后面的添加语句是:从i到j的总和
f_max[i][j]+=sum[j]-sum[i-];
}
}
printf("%d\n%d",f_min[][n],f_max[][n]);
return ;
}

最新文章

  1. --hdu 1050 Moving Tables(贪心)
  2. spring 基本操作总结主要是aop以及依赖注入的基本配置
  3. Jquery inArray的使用
  4. js 模块化
  5. http://www.cnblogs.com/xdp-gacl/p/3951952.html
  6. kafka中对一个topic增加replicas
  7. mysql配置文件my.cnf
  8. jquery-图片轮播(新手请大神指教一下)
  9. nodejs环境的搭建(linux环境centos6.5)
  10. c++ --&gt; static关键字总结
  11. Java 诊断工具 Arthas 教程学习笔记
  12. spring cloud 版本号与 boot版本之间的对应关系(版本不对,会导致pom无法引入)
  13. ccf题库20170903--Json查询
  14. python3笔记(二)Python语言基础
  15. Python爬虫学习——布隆过滤器
  16. MySQL InnoDB Engine--数据预热
  17. 获取Android文件路径
  18. canvas和图片互转
  19. FutureTask 源码分析
  20. nginx-vod-module &amp;&amp; docker &amp;&amp; docker-compose 测试

热门文章

  1. 转:JSON Assertion 适用于json格式的响应断言
  2. 预处理、const、static与sizeof-sizeof与strlen有哪些区别
  3. 使用Pillow(PIL)库实现中文字符画
  4. DOM操作的性能优化
  5. Nginx-HTTP之静态网页访问流程分析二
  6. 之前有面试到两个日期的大小比较方式,现在整理一下几种方法。 &#160; 例子: &#160; String beginTime=new String(&quot;2017-06-09 10:22:22&quot;);&#160; &#160; &#160;String endTime=new String(&quot;2017-05-08 11:22:22&quot;);&#160; 1 &#160;直接用Date自带方法before()和after()比较 SimpleDateFormat d
  7. [Tex学习笔记]章节用罗马字母编号
  8. ORACLE数据库黑/白名单
  9. 企业SOA架构案例分析
  10. 【论文学习】Blind Super-resolution Image Reconstruction Based On Novel Blur Type Identification