Description

在一个美丽的秋天,丽丽每天都经过的花园小巷落满了树叶,她决定把树叶堆成K堆,小巷是笔直的 共有N片树叶(树叶排列也是笔直的),每片树叶都有一个重量值,并且每两片想邻的树叶之间的距离都是1 现把所有的树叶按从左到右的顺序进行编号,编号为1..N。丽丽移动每片树叶所消耗能量等于这片树叶的重量 乘以移动的距离,丽丽决定分K天完成,每天堆一堆,并且规定只能把树叶往左移动,因为丽丽每天都是从右往左 经过小巷的。求丽丽完成任务所消耗的最少能量。

Input

输入的第一行为两个用空格隔开的正整数N和K。后面有N行 每行一个正整数表示叶子的重量(第i+1行表示第i片树叶的重量)

Output

输出为一个整数,表示把树叶堆成K堆所消耗的最少体力。

Sample Input

5 2
1
2
3
4
5

Sample Output

13

HINT

N在(0,1001) 
K在(0,11) 
每片树叶的重量(0,1001)

前缀和优化一下即可

还要注意一下叶子们的顺序

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define M 1001
 5 #define ll long long
 6 using namespace std;
 7 int n,K;
 8 int h[M];
 9 ll pre[M];//前缀和
10 ll sum[M][M];//表示把1-i的叶子搞到j的费用
11 ll dp[M][11];//表示前i堆叶子分了j段的最小费用
12 int main()
13 {
14     scanf("%d%d",&n,&K);
15     for(int i=1;i<=n;i++) scanf("%d",&h[i]);
16     for(int i=1;i<=n/2;i++) swap(h[i],h[n-i+1]);
17     for(int i=1;i<=n;i++) pre[i]=pre[i-1]+h[i];
18     for(int i=1;i<=n;i++)
19         for(int j=i;j<=n;j++)
20         {
21             if(i==j) sum[i][j]=sum[i-1][j-1]+pre[i-1];
22             else sum[i][j]=sum[i][j-1]+pre[i];
23         }
24     memset(dp,0x7f,sizeof(dp));
25     for(int i=1;i<=n;i++)
26     {
27         dp[i][1]=sum[i][i];
28         for(int j=1;j<i;j++)
29             for(int k=2;k<=min(K,j+1);k++)
30                 dp[i][k]=min(dp[i][k],dp[j][k-1]+sum[i][i]-sum[j][i]);
31     }
32     printf("%lld",dp[n][K]);
33     return 0;
34 }

转载于:https://www.cnblogs.com/Slrslr/p/9575473.html

[BZOJ1587]叶子合并leaves相关推荐

  1. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)

    假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...

  2. 消费级GPU、速度提升3000倍,微软FastNeRF实现200FPS高保真神经渲染

    作者|小舟.杜伟 来源|机器之心 近日,微软提出了一种基于 NeRF 的新系统 FastNeRF,用它来渲染逼真图像,速度能有多快呢?在高端消费级 GPU 上达到了惊人的 200FPS! 神经辐射场( ...

  3. python算法与数据结构-数据结构中常用树的介绍(45)

    阅读目录 一.树的定义 二.二叉树介绍 三.完全二叉树介绍 四.满二叉树介绍 五.平衡二叉树(AVL树)介绍 六.红黑树介绍 七.霍夫曼树 八.B树介绍 九.B+树介绍 十.B*树介绍 十一.Trie ...

  4. leetcode 427. Construct Quad Tree | 427. 建立四叉树(分治法)

    题目 https://leetcode.com/problems/construct-quad-tree/ 题解 /* // Definition for a QuadTree node. class ...

  5. 消费级GPU、速度提升3000倍,微软FastNeRF实现200FPS

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 神 ...

  6. 二叉搜索树的删除操作可以交换吗_一文看懂数据结构中的树

    通常在开始学编程的时候,你会接触一些常用数据结构.到最后一般会学到哈希表.对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表.队列和栈的各种知识.这些统称为线性数据结构,因为依逻 ...

  7. Storj:区块链在云存储上的应用

    写作背景 本人即将开始三年的计算机硕士学涯,目前研究方向是区块链与云存储的结合.在学习中了解到Storj Labs这家公司已经推出了比较完整的.以区块链为核心技术的分布式云存储服务:Storj.在对其 ...

  8. 2020.10.24--AI--波纹便签、字体设计、徽章制作

    波纹标签 1.先画出正方形进行颜色描边,在用线段工具在方形里画出线段,然后复制一个往下移动,再按Ctrl+D进行多次复制 2.选中中间的所有线条执行"效果""扭曲和变换& ...

  9. BDD ROBDD

    1. 基本概念 终端节点:叶子 非终端节点 决策变量: index(v)=i,xi是v的决策变量 数学表达: v 节点 V 节点的集合 e 树的边 E 边的集合 value(v) 叶子的值 index ...

最新文章

  1. .NET平台开源项目速览(1)SharpConfig配置文件读写组件
  2. Linux快速入门打开你的学习之道
  3. 在 Element-UI 的 Table 组件上添加列拖拽效果
  4. NMS(Non-Maximum Suppression)非极大值抑制
  5. g++ 安装python_以后再也不用“教程”:让人举一反三的python配置环境过程 + 超简单原理概括!...
  6. CF758 D. Ability To Convert 细节处理字符串
  7. Ubuntu下安装CUDA
  8. transformers Preprocessing data
  9. 微信小程序API之setInterval
  10. LeetCode —— 链表相关(206、141)
  11. 清除SQLServer2008缓存
  12. 中级通信工程师证书有什么用
  13. java权限管理面试_java shiro面试题
  14. Java多线程 - 线程状态
  15. 3种团队分组适应项目_分组团队竞赛活动方案
  16. 接口收到CRC错包怎么处理
  17. 我的爸爸是一位计算机工程师,我的爸爸是工程师的作文
  18. SQL(oracle)常用命令
  19. 博学而笃志,切问而近思,仁在其中矣
  20. 【ORM框架】Python ORM框架——peewee(详细)

热门文章

  1. K8s Liveness/Readiness/Startup 探针机制
  2. FineReport 数据决策系统
  3. vue3+vant开发微信公众号网页爬坑不完全指北
  4. arm开发板移植openssl
  5. 什么是“富人思维”?
  6. matlab regress bint,Matlab一个关于regress的困惑
  7. OneDrive登录问题
  8. 数字图像处理 低通、高通、带阻和带通滤波器
  9. cdr最新软件下载2023中文版电脑64位免费安装包
  10. 朋友圈评论、点赞测试点