蓝桥算法赛(摆玩具)

news2024/11/15 12:12:04

问题描述

小蓝是一个热爱收集玩具的小伙子,他拥有  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.coloradmin.cn/o/1133836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue props实现父组件给子组件传递数据

Vue中的配置项Props能让组件接收外部传递过来的数据。 一、传递数据 在要传递的组件标签中配置传递信息&#xff1a; 属性名 "属性值" 注意&#xff1a;如果传递的属性值是一个表达式&#xff0c;要使用&#xff1a;属性名"属性值" 的形式。 二、接收数…

竞赛选题 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

FLStudio21汉化破解激活版下载,Fl Studio 2024中文破解版激活补丁

最新版本FL Studio 21官方中文汉化激破解版是比利时Image-Line公司开发的DAW。在去年DTM站的DAW调查中&#xff0c;在世界上很受欢迎&#xff0c;特别是作为EDM制作工具被广泛使用。从1997年以FruityLoops的名字发行的时候开始&#xff0c;FL Studio 21就一直作为Windows专用的…

软件工程17-18期末试卷

2.敏捷开发提倡一个迭代80%以上的时间都在编程&#xff0c;几乎没有设计阶段。敏捷方法可以说是一种无计划性和纪律性的方法。错 敏捷开发是一种软件开发方法论&#xff0c;它强调快速响应变化、持续交付有价值的软件、紧密合作和适应性。虽然敏捷方法鼓励迭代开发和灵活性&…

RK3568驱动指南|第七期-设备树-第60章 实例分析:GPIO

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

2023软件测试面试问题全在这,刷完即就业

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…

大热电视剧《好事成双》里的IT故事:用户数据泄露事件引出的美女黑客

在大热电视连续剧《好事成双》中&#xff0c;卫明为了与冯凯竞争方舟公司副总裁职位&#xff0c;不惜将冯凯泄露方舟公司用户数据的黑料向媒体爆料&#xff0c;这个新闻迅速上了热搜。 卫明报料的材料都是他从方舟公司的系统中获取和保存的。以卫明的精明而论&#xff0c;按理他…

Python 配置pyqt5开发环境

1.下载需要的pyqt包 这里是所依赖的包(包含了一些项目中其它的包),可以将下面的包复制到requirement.txt&#xff0c;最后使用pip打包安装这些库&#xff0c;具体方法可以参考Python环境离线下载安装。 altgraph0.17.4 click7.1.2 numpy1.24.4 opencv-python4.2.0.34 packagi…

C/C++整数的个数 2020年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C整数的个数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C整数的个数 2020年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定k&#xff08;1 < k < 100&#xff09;个…

Day10配置文件日志多线程

配置文件 在企业开发过程中&#xff0c;我们习惯把一些需要灵活配置的数据放在一些文本文件中&#xff0c;而不是在Java代码写死 我们把这种存放程序配置信息的文件&#xff0c;统称为配置文件 properties 是一个Map集合&#xff08;键值对集合&#xff09;&#xff0c;但是我…

C语言之数组详解

目录 一维数组的定义和使用 二维数组的定义和使用 字符数组和字符串 练习题 练习一 练习二 练习三 一维数组的定义和使用 当涉及到一系列相同类型的数据时&#xff0c;C语言中的一维数组是一种非常有用的数据结构。以下是关于C语言一维数组的定义和使用的详细说明&…

威联通NAS进阶玩法之使用Docker搭建个人博客教程

Hello大家好&#xff0c;本篇教程主要教大家在威联通的NAS上搭建属于自己的个人博客网站&#xff0c;首先介绍一下我使用的机器&#xff0c;四盘位威联通TS-464C2&#xff0c;搭载四核四线程的N5095处理器&#xff0c;支持4K60帧的输出以及PCIE3.0,可玩性还是非常高的。废话不多…

网工内推 | 应届、大专可投,IE认证优先,有年终奖、带薪年假

01 伟众信息 招聘岗位&#xff1a;网络工程师&#xff08;应届生&#xff09; 职责描述&#xff1a; 1、网络架构及信息安全规划、设计&#xff1b; 2、制定撰写项目方案、投标文件技术方案、行业技术文档等&#xff1b; 3、路由交换、网络安全设备等网络设备安装、调试及后…

css 雷达扫描图

html 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css 雷达扫描</title><style>* {margin: 0;padding: 0;}body {background: #000000;height: 100vh;display: flex;align-items…

论文解读:《DataPype:用于计算机辅助药物设计的全自动统一软件平台》

论文解读&#xff1a;《DataPype: A Fully Automated Unified Software Platform for Computer-Aided Drug Design》 1.文章概述2.背景2.方法2.1 DataPype概述2.2 数据2.3 分子和蛋白质数据的处理2.3.1 配体处理2.3.2 蛋白质加工 2.4 CADD方法2.5 基准研究2.5.1 单个 CADD 制备…

Swoole 4.8版本的安装

1、从github拉取安装包 Release v4.8.13 swoole/swoole-src GitHub 2、解压压缩包 tar -zxvf ./v4.8.13.tar.gzcd ./swoole-src-4.8.13 3、执行安装命令 phpize && \ ./configure && \ make && sudo make install 4、检查swoole模块是否安装完成…

第一章 函数 极限 连续(未完更新中)

了解 一、函数的性质 理解 一、函数 1、函数概念 ⚠️定义域和对应规则是同一函数的判断 2、复合函数 简单的说就是内层函数的值域与外层函数的定义域有交集 3、反函数 3.1、yx^3为反函数&#xff0c;yx^2不是 3.2、单调函数是反函数的充分非必要条件&#xff08;单调函数…

Python爬虫(二十四)_selenium案例:执行javascript脚本

本章叫介绍如何使用selenium在浏览器中使用js脚本&#xff0c;更多内容请参考&#xff1a;Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句from selenium import webdriver from selenium.webdriver.common.keys import Keysdriver webdri…

经典链表试题(二)

文章目录 一、移除链表元素1、题目介绍2、思路讲解3、代码实现 二、反转链表1、题目介绍2、思路讲解3、代码实现 三、相交链表1、题目介绍2、思路讲解3、代码实现 四、链表的中间结点1、题目介绍2、思路讲解3、代码实现 五、设计循环队列1、题目介绍2、思路讲解3、代码实现 六、…

酸纯化APU系统在阳极氧化酸回收中的应用

阳极氧化是一种涉及对金属(通常是铝)表面进行电化学处理的工艺&#xff0c;作为一种表面处理中常见且主要的技术&#xff0c;阳极氧化可增强其耐腐蚀性、硬度和耐磨性&#xff0c;从而提高铝合金的使用寿命和美观度。 常见的表面处理方法——阳极氧化 阳极氧化是以铝或铝合金制…