当前位置: 首页 > news >正文

蓝桥算法赛(摆玩具)

问题描述

小蓝是一个热爱收集玩具的小伙子,他拥有  n 个不同的玩具。

这天,他把  n 个玩具按照高度顺序从矮到高摆放在了窗台上,然后,他希望将这些玩具分成  k 个段,使得所有分段的极差之和尽可能小。

具体来说,你需要将一个长度为  n 的序列分为  k 段,我们定义  Gi 为第  i 个分段的极差,你要最小化 

你能帮助小蓝找到最小值是多少吗?

极差:是指每个分段中最高和最矮玩具高度之差,例如有一段为: {3,6,10,12},那么极差为  12−3=9。

分段:即每一段在原始序列中是一段连续区间,例如将  {1,2,3,4,5} 分为两段, {1,2,3}∣{4,5} 是合法的,但是  {1,2,4}∣{3,5} 不是合法的。

输入格式

第一行输入两个整数  n,k,代表玩具数量和需要分段的数量。

第二行输入  n 个整数  {h1,h2,...,hn},代表每个玩具的高度。

输出格式

输出一个整数,表示最小的极差和。

样例输入

5 2 
2 5 7 10 13

样例输出

8

说明

存在多种分段方式,其结果都是最小值:

  1. {2}∣{5,7,10,13},极差和为 0+8=8。
  2. {2,5,7}∣{10,13},极差和为 5+3=8。
  3. {2,5,7,10}∣{13},极差和为 8+0=8。

评测数据范围

1≤k≤n≤10^5。

1≤h1≤h2≤h3≤...≤hn≤10^9。

import java.util.*;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();int k=scan.nextInt();int sum=0;int a[]=new int[n];int b[]=new int[n-1];for(int i=0;i<n;i++){a[i]=scan.nextInt();}for(int i=0;i<n-1;i++){b[i]=a[i+1]-a[i];}Arrays.sort(b);for(int i=0;i<n-k;i++){sum+=b[i];}System.out.println(sum);}
}

http://www.lryc.cn/news/206090.html

相关文章:

  • vueDay04——v-if else show
  • 大数据技术学习笔记(二)—— Hadoop 运行环境的搭建
  • leetcode系列(双语)002——GO两数相加
  • 废柴勇士(据说没有人能坚持37秒)
  • buuctf_练[羊城杯2020]easyphp
  • 【Linux】安装配置虚拟机及虚拟机操作系统的安装
  • hugo-stack for github
  • 【uniapp】proxy 代理切换至线上测试地址调试接口
  • 对比Vue2和Vue3的自定义指令
  • Python:实现日历到excel文档
  • C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠
  • 第1章 Java、IDEA环境部署与配置
  • 如何进行二进制文件的读写操作?
  • python实现PDF表格与文本分别导出EXCEL
  • Java开发-WebSocket
  • SpringDoc API文档工具集成SpringBoot - Swagger3
  • Java将djvu文件转成pdf
  • 【机器学习合集】激活函数合集 ->(个人学习记录笔记)
  • 【从0到1设计一个网关】什么是网关?以及为什么需要自研网关?
  • Tp框架如何使用事务和锁,还有查询缓存
  • Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行
  • 【产品经理】APP备案(阿里云)
  • Overmind VS Redux
  • 0基础学习PyFlink——流批模式在主键上的对比
  • Java学习笔记(五)——数组、排序和查找
  • python输出与数据类型
  • React-Redux总结含购物车案例
  • 攻克组合优化问题!美国DARPA选中全栈量子经典计算公司Rigetti
  • Kafka - 深入了解Kafka基础架构:Kafka的基本概念
  • [Docker]二.Docker 镜像,仓库,容器介绍以及详解