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

ABC352D 题解

ABC352D - Description

给你一个 \(n\) 的排列 \(a\),让你选出一个长度为 \(k\)\(a\) 的子序列 \(b=\left [ a_{p_1},a_{p_2},\cdots ,a_{p_k} \right ]\),使得 \(\min b_i +k-1=\max b_i\) 的同时控制 \(p_k-p_1\) 最小,求出这个最小值。

\(1\le n,k\le 2\times 10^5\)

ABC352D - Solution

注意到 \(a\) 数组本身就是排列,而要求选出排列就等于直接截取 \(a\) 的子串,这省去了中间的很多过程。先求出 \(c_{a_i}=i\),可以发现 \(c\)\(a\) 的一个置换,因此显然不影响答案。要让 \(b\) 数组构成一个排列 \(\{ a,a+1,\cdots ,a+k-1\}\),就是在 \(c\) 中选出一个长度为 \(k\) 的子串。而 \(p_k\) 就是这个子串中的最大 \(c_i\)\(p_1\) 就是最小 \(c_i\)。现在,答案就变成了下面式子的值:

\[\min_{i=1}^{n-k+1} (\max_{j=i}^{i+k-1} c_i - \min_{j=i}^{i+k-1} c_i) \]

单调队列扫描可以做到 \(O(n)\) 预处理。

#include<bits/stdc++.h>
#define int long long
using namespace std;
long long n,k,a[200005],c[200005],minn[200005],maxx[200005],ans=INT_MAX;
deque<int>q;
signed main(){cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];c[a[i]]=i;}
//	for(int i=1;i<=n;i++){
//		cout<<c[i]<<" ";
//	}
//	cout<<endl;for(int i=1;i<=n;i++){while(!q.empty()&&i-q.front()>=k){q.pop_front();}while(!q.empty()&&c[q.back()]>c[i]){q.pop_back();}q.push_back(i);minn[i]=c[q.front()];}while(!q.empty()){q.pop_back();}for(int i=1;i<=n;i++){while(!q.empty()&&i-q.front()>=k){q.pop_front();}while(!q.empty()&&c[q.back()]<c[i]){q.pop_back();}q.push_back(i);maxx[i]=c[q.front()];}for(int i=1;i<=n-k+1;i++){int x=i+k-1;ans=min(ans,maxx[x]-minn[x]);}cout<<ans<<endl;return 0;
}
http://www.gsyq.cn/news/80016.html

相关文章:

  • 12月9号
  • CF1407D 题解
  • MySQL 筛选条件放 ON 后 vs 放 WHERE 后
  • 明天不干是小狗
  • 2025 年面膜消费指南:告别盲目囤货,10款补水保湿抗老修护爆款适配干油敏肌,精准解决护肤痛点 - 资讯焦点
  • P4064 [JXOI2017] 加法 题解
  • 北京SAT辅导机构选课指南:高分攻略与机构测评(2025最新) - 品牌测评鉴赏家
  • 第四次作业-何玮鑫
  • 【树莓派】【v4l2】在树莓派环境下取流-编码-存储
  • P4105 [HEOI2014] 南园满地堆轻絮 题解
  • [ABC241D] Sequence Query 题解
  • Prometheus + Grafana 原理和用法
  • 2025年市场技术好的不锈钢热轧板生产厂家怎么选择,304不锈钢冷热轧板材/316L不锈钢冷热轧板材定制加工有哪些 - 品牌推荐师
  • mysql优化
  • 2026考研政治肖秀荣 408真题教材 资料提供
  • 2025.12.9博客
  • ubuntu docker运行大模型
  • 托福一对一机构怎么选?高性价比推荐+避坑指南,2025备考党必看! - 品牌测评鉴赏家
  • 疫苗的“设计图纸”如何变成现实?浅谈重组蛋白技术
  • 公式怎么写
  • 2025春季 PTA 中国大学MOOC上面的数据结构测试第三题 待修正中
  • 漏洞赏金猎人不会告诉你的秘密:从100多个已报告漏洞中总结的技巧
  • 2025.12.9
  • 深入解析:用 Paimon 做实时数据湖Flink CDC Pipeline 的 Paimon Sink 实战
  • 2025年天津低烟无卤电缆生产厂家推荐:实力企业名单请收好 - 品牌2026
  • 编译树莓派AOSP
  • 再见 Heroku:我用这个开源平台,把后端成本砍掉了 80%
  • ts + react + antd Claude.md
  • 2025北京托福机构精选指南:口碑、师资、性价比全解析
  • 我们用“平台工程”取代了 DevOps 团队,云成本降低70%