传送门

1048 石子归并

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold

题目描述 Description

有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。

输入描述 Input Description

第一行一个整数n(n<=100)

第二行n个整数w1,w2...wn  (wi <= 100)

输出描述 Output Description

一个整数表示最小合并代价

样例输入 Sample Input

4

4 1 1 4

样例输出 Sample Output

18

数据范围及提示 Data Size & Hint

【code】

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[101],f[101][101],sum[101];
int main()
{scanf("%d",&n);memset(f,0x3f,sizeof(f));for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i]; }for(int i=1;i<=n;i++)f[i][i]=0;for(int i=n;i;i--)for(int j=i+1;j<=n;j++)for(int k=i;k<j;k++)f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+sum[j]-sum[i-1]);printf("%d\n",f[1][n]);return 0;
}

转载于:https://www.cnblogs.com/zzyh/p/7067511.html

codevs 1048 石子归并相关推荐

  1. Codevs 3002 石子归并 3(DP四边形不等式优化)

    3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...

  2. 【codevs1048】【codevs115406TG】石子归并、能量项链,序列dp的典型题目

    1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并 ...

  3. 区间DP{环形}:石子归并-2

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

  4. GarsiaWachs算法:石子归并问题

    1023 石子归并 V3 基准时间限制:2 秒 空间限制:131072 KB 分值: 320 难度:7级算法题  收藏  关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2 ...

  5. 【codevs1048】石子归并

    提交:http://codevs.cn/problem/1048/ 递推 //f[i]:到i为止的LIS的长度. //f[i]=max{1,f[j]+1|j<i&&aj<a ...

  6. 51nod 1021 石子归并 (动态规划 简单代码)

    题目: 思路:动态规划,递推式子 dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + sum[j] - sum[i-1]); dp[i][j]表示合并第i ...

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

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

  8. 石子归并 51Nod - 1021

    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有不少 ...

  9. 算法讲解 -- 区间dp经典模型与优化(石子归并)

    石子合并问题是最经典的DP问题.首先它有如下3种题型: PPT讲解:点击打开链接 (1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数 ...

最新文章

  1. tiny-cnn执行过程分析(MNIST)
  2. centos 7.0 ln命令 和chkconfig 命令介绍 开机自动启 服务
  3. Java加密与解密的艺术~数字证书详解
  4. 苹果android怎么升级,微信系统升级!苹果安卓手机如何升级更新为最新版微信8.0?...
  5. Python中的闭包总结
  6. Linux Qt工程组织结构与动态库引用
  7. asp.net ashx处理程序中switch case的替代方案总结
  8. FragmentSharedFabTransition
  9. java项目收获总结_java开发项目收获心得
  10. 服务器为啥要搭建在2012系统,WindowsServer2012R2搭建SFTP服务器以及配置
  11. win10安装win10X虚拟机教程
  12. Asterisk入门教程
  13. SQL2019 用户sa‘登录失败(错误18456)
  14. 方框加对勾怎么输入_Word文档里的□(方框)里怎么加入√(对勾)?
  15. php段错误coredumped,段错误 (core dumped)
  16. 41、基于51单片机手机无线充电器系统锂电池存电系统设计
  17. java file 获取文件类型_Android中Java根据文件头获取文件类型
  18. 关于C++ variant 类型问题
  19. 基于java web的网上书店系统
  20. 前端、框架和其他(155题)

热门文章

  1. r语言 fourth entry_第四篇 语言学习的自然顺序
  2. 将之前写完的猜数字游戏改为通过javabean_【沃德英语】好玩的单词游戏
  3. Tomcat - Springboot启动的时候初始化的线程池默认配置
  4. IDEA 同一个工程下不同模块之间的类相互调用
  5. SpringBoot - 使用ExecutorService线程池执行异步任务教程(以Runnable任务为例)
  6. linux下安装minio
  7. Java之final关键字详解
  8. Android开发笔记(一百三十三)导航视图NavigationView
  9. java 制作动态手机壁纸_android 动态切换壁纸实例 利用service机制实现 附完整源码 带动态截图...
  10. QT中foreach的使用