题解:P14058 【MX-X21-T3】[IAMOI R5] 两个人的演唱会

先特判这个环本身极差就不超过 \(m\) 的情况(此时答案为 \(1\))。

原问题在环上,不是很好解决,先考虑解决一个更简单的问题:

小 R 有一个长度为 \(n\) 的,由正整数组成的 \(a_1,\dots,a_n\),她要你将这个切成若干段,使得所有段的段内极差都小于等于 \(m\),求分成的最少段数。

这是一个经典的贪心问题。显然,在所有切法中,每次切出最长的极差不超过 \(m\) 的前缀一定不劣。使用双指针维护,动态维护左右指针中间部分的最大值和最小值即可。

现在问题被转化为,我们应该在何处将环断为链,才能得到最优答案。乍一看确实无从下手,因此想到考虑环上的一些“特殊”位置。

考察任意一个最小值位置 \(a_x\),取出它所在的段,那么这一段的极差不超过 \(m\),等价于段内任意一个 \(a_y\) 都满足 \(a_y\le a_x+m\)。符合要求的极长段是唯一的,也就是说,对于任意一种合法的切分方式,\(a_x\) 所在的段都一定包含于这个极长段之中。根据贪心的思想,切出这一极长段一定不劣。

切出这一段后,剩下的部分自然断成了一条链,使用前面提到的双指针即可求出答案。

时间复杂度 \(O(\sum n)\)

//By: OIer rui_er
#include <bits/stdc++.h>
#define rep(x, y, z) for(int x = (y); x <= (z); ++x)
#define per(x, y, z) for(int x = (y); x >= (z); --x)
#define debug(format...) fprintf(stderr, format)
#define fileIO(s) do {freopen(s".in", "r", stdin); freopen(s".out", "w", stdout);} while(false)
#define endl '\n'
using namespace std;
typedef long long ll;const int N = 3e7 + 5;int T, n, m, a[N];int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);for(cin >> T; T; --T) {cin >> n >> m;rep(i, 0, n - 1) cin >> a[i];if(*max_element(a, a + n) - *min_element(a, a + n) <= m) {cout << 1 << endl;continue;}int argmin = min_element(a, a + n) - a;int pl = argmin, pr = argmin;auto pre = [&](int x) {return (x + n - 1) % n;};auto nxt = [&](int x) {return (x + 1) % n;};while(a[pre(pl)] - a[argmin] <= m) pl = pre(pl);while(a[nxt(pr)] - a[argmin] <= m) pr = nxt(pr);int ans = 1, p = nxt(pr), mx = a[p], mn = a[p];while(p != pl) {chkmax(mx, a[p]);chkmin(mn, a[p]);if(mx - mn > m) {++ans;mx = mn = a[p];}p = nxt(p);}cout << ans + 1 << endl;}return 0;
}

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

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

相关文章

CSP-J 2025 初赛试题解析(第一部分:阅读程序题(一)(16-21)) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

玉林市网站开发公司电话大数据营销前景

本文更新日期&#xff1a;2019年9月21日很多人找不到mybatis jar或者下载mybatis jar需要付积分&#xff0c;所以本页面给大家提供一个便捷的下载通道&#xff0c;敬请关注。一、mybatis 3.5.2版本下载&#xff1a;此压缩包包含文件&#xff1a;(1)mybatis-3.5.2.jar(2)mybatis…

网站自适应与响应式开源的 二次网站开发

无人机是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机&#xff0c;或者由车载计算机完全地或间歇地自主地操作。无人机按应用领域&#xff0c;可分为军用与民用。军用方面&#xff0c;无人机分为侦察机和靶机。民用方面&#xff0c;无人机行业应用&#xff0c;是无…

江门招聘网最新招聘利于seo优化的网站

什么是长连接&#xff1f;其实长连接是相对于通常的短连接而说的&#xff0c;也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是&#xff1a;连接-》数据传输-》关闭连接&#xff1b;而长连接通常就是&#xff1a;连接-》数据传输-》保持连接-》数据传输-》保…

中国建设教育网官方网站网站开发备案费用

文章目录 1. ELK的概述1.1 简介1.2 使用ELK的理由1.3 ELK的主要组件1.3.1 Elasticsearch1.3.2 Kibana1.3.3 Logstash1.3.3.1 简介1.3.3.2 Logstash常用相关命令选项 1.3.3.3 Logstash 的输入和输出流1.3.4 Logstash的相关配置文件 1.3.4 Filebeat1.3.4.1 简介1.3.4.2 filebeat …

使用vue做商城网站项目难点想学网络营销怎么学

一&#xff1a;为什么需要NAT由于IP地址随着互联网的发展而逐渐稀缺&#xff0c;难以使得每台主机都拥有一个公网上的IP地址&#xff0c;且并不是所有主机都需要一个公网上的地址&#xff0c;于是就有了NAT技术。NAT&#xff08;The IP Network Address Translator&#xff09;…

建设工程168类似的网站做网站经验

本文的研究目标是以高校校园外卖点餐为对象&#xff0c;使其高校校园外卖点餐为目标&#xff0c;使得高校校园外卖点餐的信息化体系发展水平提高。论文的研究内容包括对个人中心、美食分类管理、用户管理、商家管理、美食信息管理、工作人员管理、安全检查管理、系统管理、订单…

深入解析Wallarm安全边缘:API边缘的即时防护技术

本文详细介绍Wallarm安全边缘平台的API防护技术架构,包括其托管式SaaS部署模式、低延迟边缘节点设计、实时可观测性仪表板、多云高可用性架构以及双向TLS加密等核心安全特性,为企业提供即时部署的API安全解决方案。A…

找兼职h5网站开发人员怎样推广自己的视频号

作者 | 奇伢来源 | 奇伢云存储典型问题&#xff1a;服务端优雅的拒绝今天分享一个后端编程的实际经验。这个问题来源于对象 S3 后端协议实现的技巧思考。场景&#xff1a;服务端不想接收 http 的 body 的时候&#xff0c;该怎么优雅的拒绝呢&#xff1f;什么意思&#xff1f;对…

使用ai来搭建测试用例1

使用ai来搭建测试用例1我用的是工作流网页:https://www.coze.cn/home,自己注册一下,按照图片步骤操作,最后创建一下工作流名称,恭喜你,你有了一个工作流2、在工作流里面设置“开始”,修改需要上传的文件 3、点击…

面试八股文之——JVM与并发编程/多线程 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

哈尔滨专业做网站德阳定制建站网站建设报价

jbpm 和 drools介绍 本文讨论了一项新功能&#xff0c;该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组。 用户和组管理 在安装&#xff0c;设置和使用此功能之前&#xff0c;本文讨论了一些以前的概念&#xff0c;需要进一步理…

不用写代码可以做网站的软件深圳龙华有什么好玩的地方推荐

原文来自互联网&#xff0c;由长沙DotNET技术社区编译。如译文侵犯您的署名权或版权&#xff0c;请联系小编&#xff0c;小编将在24小时内删除。限于译者的能力有限&#xff0c;个别语句翻译略显生硬&#xff0c;还请见谅。作者简介&#xff1a;Jon&#xff08;Jonathan&#x…

学校网站建设框架小程序源码之家

概述 Reddit是一个社交新闻网站&#xff0c;用户可以发布各种主题的内容&#xff0c;包括图片。本文将介绍如何使用Go语言和Colly库编写一个简单的爬虫程序&#xff0c;从Reddit网站上下载指定主题的图片&#xff0c;并保存到本地文件夹中。为了避免被目标网站反爬&#xff0c…

浏览器打开网站北京通州网站设计公司

一文了解贪心算法和回溯算法在前端中的应用一、贪心算法1、贪心算法是什么&#xff1f;2、应用场景3、场景剖析&#xff1a;零钱兑换二、回溯算法1、回溯算法是什么&#xff1f;2、什么问题适合选用回溯算法解决&#xff1f;2、应用场景3、场景剖析&#xff1a;全排列三、贪心算…

网站域名到期不续费会怎么样怎么制作图片链接

白鹿以前的短视频&#xff1a;时光剪影中的创意火花与成长轨迹 在短视频风起云涌的互联网时代&#xff0c;每一位创作者的早期作品都如同时间胶囊&#xff0c;封存着最初的创意与梦想。提及“白鹿”这一名字&#xff0c;不少人心中会立刻浮现出那个凭借独特风格和不懈努力&…

网站seo诊断湖南岚鸿诊断网上购物系统源码

目录 1、日志输出到文件 2、日志输出到屏幕 3、设置输出等级 4、设置多个日志输出对象 5、日志的配置 6、记录异常 7、设置日志输出样式1、日志输出到文件basicConfig()提供了非常便捷的方式让你配置logging模块并马上开始使用。什么都不配置直接使用默认值在控制台中打log&…

总线的概念以及分类

为什么要用总线: 早期计算机设备少,大多用分散的方法连接实现,不易实现随时增减外部设备,为了更好解决io设备和主机之间连接的灵活性,计算机的结构从分散连接发展为总线连接。 总线的特性 1.机械特性 尺寸,形状,…

A Great Beginning

在2025年才开始写blog似乎已经有点过时了,似乎一切技术都可以询问AI得到,但经验不是。 一些似是而非的问题连描述清楚都很难,需要有一种惊人的直觉才能从线团中捻到那根线头。 而直觉,是AI目前根本无法突破的桎梏。…

邮件系统的未来趋势:技术革新与智能化的未来

随着科技的飞速发展,邮件系统作为信息传递的重要工具,正在经历一场深刻的技术变革。从智能化的邮件管理到更加安全的加密技术,未来的邮件系统将不仅仅是一个简单的通信平台,而是会成为更加高效、智能和安全的信息交…