1660. 石子合并(加强版)

★★   输入文件:stone3.in   输出文件:stone3.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】

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

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

【输入格式】

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

【输出格式】

输出共1行,最大得分

【样例输入】

4

4 4 5 9

【样例输出】

54

【提示】

注意数据范围。

【来源】

HZOI2014

注意范围......

题解观摩chy http://blog.csdn.net/sdfzchy/article/details/70990830

贴代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6
 7 int in,f[4010][4010],sum[4010];
 8 int ans,n;
 9 int main(){
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++) scanf("%d",&in),sum[i]=sum[i-1]+in;
12     for(int i=1;i<=n;i++) sum[i+n]=sum[i]+sum[n];
13     ans=0x80000000;
14     for(int i=2;i<=n;i++)
15         for(int s=1;s<=2*n-i+1;s++){
16             int e=i+s-1;
17             f[s][e]=max(f[s+1][e],f[s][e-1]);
18             f[s][e]+=sum[e]-sum[s-1];
19         }
20     for(int i=1;i<=n;i++) ans=max(ans,f[i][i+n-1]);
21     printf("%d",ans);
22     return 0;
23 } 

转载于:https://www.cnblogs.com/sdfzxh/p/6808572.html

动态规划入门 合并石子 COGS1660 石子合并相关推荐

  1. 【动态规划】小石子游戏-石子合并

    题目 一群小孩子在玩小石子游戏,游戏有两种玩法. (1)路边玩法 有n堆石子堆放在路边,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量.求将这N堆石子 ...

  2. 1075: 动态规划入门(中链式2:能量项链)

    1075: 动态规划入门(中链式2:能量项链) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 [问题描述] 能量球组成的项链.相邻两球可以合并产生新球.合并规则:如果前一颗能量珠的头标记 ...

  3. java jtable 单元格合并_JTable 单元格合并 【转】

    最近,我为了做一个管理系统,需要用到合并JTable的单元格.查找了很多资料,终于简单的实现了.现在把代码共享出来,希望对大家有用. 本程序主要实现行的合并,列的合并大家可以根据下面的代码修改. CM ...

  4. pandas使用pd.concat纵向合并多个dataframe实战:多个dataframe的纵向合并、为纵向合并的多个dataframe设置标识符指定数据来源

    pandas使用pd.concat纵向合并多个dataframe实战:多个dataframe的纵向合并.为纵向合并的多个dataframe设置标识符指定数据来源 目录

  5. 已经无法合并还报请合并git_GIT 分支管理:创建与合并分支、解决合并冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  6. LQ训练营(C++)学习笔记_动态规划入门

    动态规划入门 五.动态规划入门 1.动态介绍 1.1动态规划基本思路 1.2 动态规划基本概念 1.2.1 阶段 1.2.2 状态 1.2.3 决策 1.2.4 状态转移方程 1.2.5 策略 1.3 ...

  7. python 矩阵合并_numpy 的矩阵合并与分割

    aiblog4.jpg 这次分享下numpy中矩阵的合并与分割,希望能帮助到大家. 在此附上视频链接 一.引入numpy第三方库 首先我们引入numpy这个第三方库,如果有同学没安装numpy可在命令 ...

  8. 动态规划入门之国王的金矿

    最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...

  9. 很特别的一个动态规划入门教程

    很特别的一个动态规划入门教程 今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下--- (说明一下,本人非常痛恨教材公式定理漫天飞,实际 ...

最新文章

  1. Apache(httpd)配置--用户认证,域名跳转和访问日志配置
  2. python下载软件-python下载工具
  3. 嵌入式基于linux电机控制器,基于嵌入式Linux的移动机器人控制系统
  4. 《数据库设计入门经典》读书笔记——第二章:工作场所中的数据库建模
  5. c语言if中文字符串比较好,如何在C语言中使用汉字作为if的判断语句?
  6. spring component-scan配置扫描多个包
  7. 【SPOJ - DQUERY】D-query【主席树 —— 区间中不同数的个数】
  8. java官方网站下载_java下载 7.0 官方版
  9. Fgui Glist 实现无限滑动 虚拟列表
  10. USACO3.4 “破锣摇滚”乐队 Raucous Rockers - DP
  11. CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子得出的点数进行游戏。
  12. 边框给背景图css怎么写,使用css设置边框背景图片
  13. LabVIEW自动整理程序框图
  14. java.lang.null_java.lang.nullpointerexception 怎么解决
  15. 家用nas存储,家庭个人云推荐
  16. 计算机慢怎么解决6,解决电脑运行慢卡顿问题的六种方法
  17. 简易的GUI图书管理系统(数据库Mysql)
  18. 浅描工作环境电脑维护以及性能测试流程
  19. java中这些判断空的用法,太优雅了
  20. 美国Midtronics MDX-600AP系列蓄电池电导及电路系统分析仪|MDX-631|密特MDX-641P|MDX-651P

热门文章

  1. 【CodeForces - 722D】Generating Sets(二分,贪心)
  2. 【牛客 - 181B】送分题(另类求解a+b,二分)
  3. 有向图算法 PHP,科学网—一种可用于脑神经网络分析的有向图分解算法 第六稿 - 谢勤的博文...
  4. android t类型参数,数据绑定Android – 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  5. 13个mysql数据库的实用SQL小技巧
  6. org.hibernate.LazyInitializationException: could not initialize proxy - no Session
  7. leetcode159. 至多包含两个不同字符的最长子串
  8. UNIX(进程间通信):04---孤儿进程
  9. libxml的安装和相关数据结构详解
  10. 推荐系统(3)-协同过滤2-矩阵分解算法