平滑值(pinghua)

平滑值

题目描述

一个数组的“平滑值”定义为:相邻两数差的绝对值的最大值。
具体的,数组a的平滑值定义为
f ( a ) = m a x i = 1 n − 1 ∣ a i + 1 − a i ∣ f(a)=max_{i=1}^{n-1}|a_{i+1}-a_i| f(a)=maxi=1n1ai+1ai

现在小红拿到了一个数组。她每次操作可以在两个元素之间添加一个整数(不能添加在第一项前面或者最后一项后面)。小红希望最终数组的平滑值恰好等于 k k k,你能帮小红求出最小的操作次数吗?

输入格式

第一行输入两个正整数 n , k n,k n,k,代表数组的大小、以及最终希望达到的平滑值。

第二行输入 n n n个正整数 a i a_i ai。代表小红拿到的数组。

输出格式

一个整数,代表小红最少的操作次数。

样例 #1

样例输入 #1

5 2
1 4 5 1 3

样例输出 #1

2

提示

小红首先在1和4之间插入一个3或2,然后在5和1之间插入一个3即可。

数据范围

2 ≤ n ≤ 1 0 5 2≤n≤10^5 2n105

1 ≤ k , a i ≤ 1 0 9 1≤k,a_i ≤10^9 1k,ai109

/*
分三种情况:
1.max(abs(a[i]-a[i-1]))==k,不用改变,输出 0
2.max(abs(a[i]-a[i-1]))<k,只在某一段做 1 次就行
3.max(abs(a[i]-a[i-1]))>k,枚举每一大于 k 的段,次数为
max/k(向上取整)-1,累加起来就是答案
*/
#include<bits/stdc++.h>
using namespace std;
int n, k;
int main() {cin >> n >> k;vector<int> a(n + 1);int mx = 0;for (int i = 1; i <= n; i++) {cin >> a[i];if (i > 1) mx = max(mx, abs(a[i] - a[i - 1]));//前后数字的最大差值}if (mx < k)cout << 1;else if (mx == k) cout << 0;else {long long ans = 0;//注意要开 long longfor (int i = 2; i <= n; i++) {int now = abs(a[i] - a[i - 1]);if (now <= k)continue; //小于等于 k 不处理ans += (now + k - 1) / k - 1; //向上取整先加k-1,再除以 k,得到段数,减 1 就是个数}cout << ans;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22700.shtml

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

相关文章

【前端】响应式布局笔记——flex

二、Flex Flex(FlexiableBox:弹性盒子&#xff0c;用于弹性布局&#xff0c;配合rem处理尺寸的适配问题)。 1、flex-direction:子元素在父元素盒子中的排列方式。 父级元素添加&#xff1a;flex-direction: row; 父级元素添加&#xff1a;flex-direction: row-reverse; 父…

家政预约小程序13我的订单

目录 1 我的订单页面布局2 全部订单页面3 完善订单状态4 查询订单信息总结 现在我们已经完成了家政预约小程序主体功能的开发&#xff0c;包含服务的查看&#xff0c;在线预约已经登录等功能。预约之后就需要家政公司的客服进行派单&#xff0c;由服务人员进行上门服务。在小程…

Hotcoin精彩亮相Consensus 2024 Austin,探索行业风向标

5 月 31 日&#xff0c;由CoinDesk主办的“Consensus 2024”大会在德克萨斯州的奥斯汀市正式落下帷幕。作为全球规模最大、最具影响力的加密货币、区块链、Web3盛会&#xff0c;本次Consensus 2024 Austin吸引来自 100 多个国家/地区的 15,000 多名与会者、6,800 家公司、850 多…

Linux 程序守护脚本

引言 程序是由代码形成的&#xff0c;代码是由人写的。只要是人&#xff0c;都会有疏忽的时候&#xff0c;导致写出的程序有bug&#xff0c;当然最严重的bug就是程序闪退。 本文旨在提供一个程序守护脚本&#xff0c;当监测到程序闪退后&#xff0c;立马将程序再起启动&#…

java 获取文件的MIME类型

MIME类型简介 MIME类型&#xff08;Multipurpose Internet Mail Extensions&#xff09;是一种标准&#xff0c;用于描述文档、文件或字节流的性质和格式。它最初是为了在电子邮件中传输多媒体数据而设计的&#xff0c;但后来也被广泛用于Web开发中。每种MIME类型都由一个唯一…

【C++】手动模拟String底层与深浅拷贝

在string类&#xff1a;版本、组件、构造、操作及应用和 C中string的一些超常用函数 (附习题)这两篇文章中我们已经了解到了string&#xff0c;现在让我们再来手动实现模拟一下吧~ 模拟实现string是为了更好的理解string函数的使用和深浅拷贝方面的知识~ 总体整理了两张思维导…

【Python编程】【Jupyter Notebook】启动时报错:no available port could be found

一、报错描述 在Jupyter Notebook中编写程序&#xff0c;无法运行&#xff0c;提示由于没有可供监听的端口&#xff0c;无法启动Jupyter服务器&#xff0c;如下图所示&#xff1a; 二、原因分析 通过报错信息&#xff0c;猜测大概是由于网络环境的原因。首先&#xff0c;关闭…

多角度剖析事务和事件的区别

事务和事件这两个概念在不同的领域有着不同的含义&#xff0c;尤其是在计算机科学、数据库管理和软件工程中。下面从多个角度来剖析事务和事件的区别&#xff1a; 计算机科学与数据库管理中的事务 事务(Transaction)&#xff1a; 定义&#xff1a;在数据库管理中&#xff0c…

C语言(结构体)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…

Java项目之消息队列(手写java模拟实现mq)【五、内存存储数据,方便快速拿到数据对象】✔ ★

九. 内存数据结构设计 硬盘上存储数据, 只是为了实现 “持久化” 这样的效果. 但是实际的消息存储/转发, 还是主要靠内存的结 构. 对于 MQ 来说, 内存部分是更关键的, 内存速度更快, 可以达成更⾼的并发 创建 MemoryDataCenter 创建 mqserver.datacenter.MemoryDataCenter …

AIGC实战!7个超热门的 Midjourney 关键词教程

一、剪纸风格 核心词&#xff1a; paper art&#xff08;剪纸艺术&#xff09; 关键技巧&#xff1a; 主体物&#xff1a;可以换成任意主角&#xff0c;Chinese illustration &#xff08;中国风插画&#xff09;&#xff1b;艺术风格&#xff1a;paper art &#xff08;剪纸…

ruoyi vue 集成积木报表真实记录

按官方文档集成即可 积木报表官方集成文档 集成问题 1.注意 idea 配置的 maven 需要设置成 本地配置&#xff0c;不可以使用 idea 自带的 maven,自带 maven 会导致私有源调用不到 后端代码 新建 base 模块 maven配置 <project xmlns"http://maven.apache.org/POM/…

微软云计算[3]之Windows Azure AppFabric

Windows Azure AppFabric AppFabric概述AppFabric关键技术服务总线访问控制高速缓存 AppFabric概述 AppFabric为本地应用和云中应用提供了分布式的基础架构服务 用户本地应用与云应用之间进行安全联接和信息传递 云应用和现有应用或服务之间的连接及跨语言、跨平台、跨不同标…

模拟蓝牙打卡机

模拟蓝牙打卡&#xff0c;源码来自github项目dingBLE 只需要一个ESP32模块模拟蓝牙打卡机&#xff0c;即可通过蓝牙打卡 亲测有效arduino代码如下 打卡机的MAC和RAW数据可使用安卓app mRFconnect 扫描获取 #include "BLEDevice.h" #include "BLEUtils.h"…

视觉SLAM

二、视觉SLAM十四讲&#xff1a;从理论到实践 第二版 电子版PDF 链接&#xff1a;https://pan.baidu.com/s/1VsrueNrdqmzTvh-IlFBr9Q 提取码&#xff1a;vfhe 源码 Gitee链接&#xff1a;https://gitee.com/gnef233/slambook2.git SLAM领域超实用开源方案汇总一

C++数据结构之:哈希表Hash

摘要&#xff1a; it人员无论是使用哪种高级语言开发东东&#xff0c;想要更高效有层次的开发程序的话都躲不开三件套&#xff1a;数据结构&#xff0c;算法和设计模式。数据结构是相互之间存在一种或多种特定关系的数据元素的集合&#xff0c;即带“结构”的数据元素的集合&am…

鸿蒙开发 之 ArkUI路由

1.页面路由 页面路由是指在应用程序中实现不同页面之间的跳转和数据传递 比如说你打开一个app&#xff0c;首先进入的是登陆页&#xff0c;首页&#xff0c;列表搜索页&#xff0c;详情页&#xff0c;你打开几个页面都会存储在页面栈里&#xff0c;页面栈的最大容量上限为32个&…

在Oracle VM virtual box 中复制 CentOS 7虚拟机更改IP地址的操作

最近玩Redis主从复制的时候&#xff0c;我装了一个虚拟机&#xff0c;但主从复制需要准备3个虚拟机&#xff0c;这个时候&#xff0c;我又不想一个一个去装&#xff0c;我看到Oracle VM virtual box提供了一个虚拟机复制操作&#xff0c;于是就用了一下这个功能&#xff0c;发现…

Python3 元组、列表、字典、集合小结

前言 本文主要对Python中的元组、列表、字典、集合进行小结&#xff0c;主要内容包括知识点回顾、异同点、使用场景。 文章目录 前言一、知识点回顾1、列表&#xff08;List&#xff09;2、 元组&#xff08;Tuple&#xff09;3、 字典&#xff08;Dictionary&#xff09;4.、…

OrangePi AIPro开发板评测(sata、yolov8、OLED)

OrangePi AIpro开发板评测&#xff0c;资源丰富&#xff0c;比以前的版本有较大的提升&#xff0c;与树莓派相媲美&#xff0c;评测感觉良好&#xff01; 开发板的开发文档非常好&#xff0c;可放心食用&#xff01;&#xff01;简直保姆级&#xff01;