当前位置: 首页 > 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.jsqmd.com/news/69454/

相关文章:

  • MySQL 筛选条件放 ON 后 vs 放 WHERE 后
  • 明天不干是小狗
  • CF547B 题解
  • SAT 辅导哪里好?2025 年优质机构推荐(含精准选择指南) - 品牌测评鉴赏家
  • 10403_基于Springboot的旅游管理系统
  • MMH_蓝桥杯Python_语法基础_列表与循环语句基础
  • 2025全屋定制十大品牌哪家好?欧蒂尼硬核实力破局,领衔品质家居新革命 - 资讯焦点
  • keepalived搭建高可用
  • P5304 [GXOI/GZOI2019] 旅行者 题解
  • 2025 年面膜消费指南:告别盲目囤货,10款补水保湿抗老修护爆款适配干油敏肌,精准解决护肤痛点 - 资讯焦点
  • P3275 [SCOI2011] 糖果 题解
  • the attitude
  • 2025年国内正规的微动开关工厂怎么选购,家电微动开关/大电流微动开关/新能源微动开关/小型微动开关/汽车微动开关供货商怎么选 - 品牌推荐师
  • win10 vscode 使用ssh登录 ubuntu
  • P4064 [JXOI2017] 加法 题解
  • 2025年河南工业大学2025新生周赛 (7)
  • P3076 [USACO13FEB] Taxi G 题解
  • 第四章 串
  • 数据采集第四次作业-102302128吴建良
  • 102302142罗伟钊第四次作业
  • 北京SAT辅导机构选课指南:高分攻略与机构测评(2025最新) - 品牌测评鉴赏家
  • 第四次作业-何玮鑫
  • [ABC212D] Querying Multiset 题解
  • P4105 [HEOI2014] 南园满地堆轻絮 题解
  • 【树莓派】【v4l2】在树莓派环境下取流-编码-存储
  • Daily Report — Day 4 (Beta)
  • [ABC241D] Sequence Query 题解
  • Prometheus + Grafana 原理和用法
  • 2025年度不锈钢板直销优质厂家TOP榜单盘点,不锈钢中厚板/201不锈钢板/不锈钢热轧板/不锈钢板现货批发哪家好 - 品牌推荐师
  • 12.09