news 2026/2/21 20:26:37

洛谷 P1886 【模板】单调队列 / 滑动窗口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷 P1886 【模板】单调队列 / 滑动窗口

题目描述

有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个窗口从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最小值和最大值。

例如,对于序列 [1,3,−1,−3,5,3,6,7] 以及 k=3,有如下过程:

窗口位置[1 3 -1] -3 5 3 6 7 1 [3 -1 -3] 5 3 6 7 1 3 [-1 -3 5] 3 6 7 1 3 -1 [-3 5 3] 6 7 1 3 -1 -3 [5 3 6] 7 1 3 -1 -3 5 [3 6 7]​最小值−1−3−3−333​最大值335567​​

输入格式

输入一共有两行,第一行有两个正整数 n,k;
第二行有 n 个整数,表示序列 a。

输出格式

输出共两行,第一行为每次窗口滑动的最小值;
第二行为每次窗口滑动的最大值。

输入输出样例

输入 #1复制

8 3 1 3 -1 -3 5 3 6 7

输出 #1复制

-1 -3 -3 -3 3 3 3 3 5 5 6 7

说明/提示

【数据范围】
对于 50% 的数据,1≤n≤105;
对于 100% 的数据,1≤k≤n≤106,ai​∈[−231,231)。

#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int a[N],q[N]; int a1,k; int main() { scanf("%d%d",&a1,&k); for(int i=0;i<a1;i++) scanf("%d",&a[i]); int hh=0,tt=-1; for(int i=0;i<a1;i++) { if(hh<=tt&&i-k+1>q[hh]) hh++; while(hh<=tt&&a[q[tt]]>=a[i]) { tt--; } q[++tt]=i; if(i>=k-1) printf("%d ",a[q[hh]]); } puts(""); hh=0,tt=-1; for(int i=0;i<a1;i++) { if(hh<=tt&&i-k+1>q[hh]) hh++; while(hh<=tt&&a[q[tt]]<=a[i]) { tt--; } q[++tt]=i; if(i>=k-1) printf("%d ",a[q[hh]]); } puts(""); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 23:44:11

飞牛os上的docker容器安装Redis

跟飞牛os上的docker容器安装MySQL大致步骤是一样的。不一样的步骤是关键步骤&#xff0c;放到下面着重讲。 一、找redis镜像 二、创建Redis在NAS上映射的文件夹 在你想要的位置创建 redis文件夹。 三、添加容器并启动容器 打开桌面的【Docker】应用&#xff0c;点击右上角的…

作者头像 李华
网站建设 2026/2/8 16:15:40

深度剖析:OpenFace如何革新面部行为分析技术栈?

深度剖析&#xff1a;OpenFace如何革新面部行为分析技术栈&#xff1f; 【免费下载链接】OpenFace OpenFace – a state-of-the art tool intended for facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. 项目地址…

作者头像 李华
网站建设 2026/2/3 23:55:10

35、嵌入式Linux网络服务搭建指南(上)

嵌入式Linux网络服务搭建指南(上) 在嵌入式Linux系统中,网络服务的搭建至关重要。本文将详细介绍inetd、xinetd、SNMP以及Telnet等网络服务的搭建过程。 1. inetd的搭建 inetd是netkit-base包的一部分,netkit是一组提供各种网络功能的软件包。netkit-base遵循BSD许可证。…

作者头像 李华
网站建设 2026/2/7 1:47:09

3步完成SQLite到MySQL数据库迁移:告别手动转换的烦恼

还在为SQLite到MySQL的数据迁移而头疼吗&#xff1f;数据类型不匹配、语法差异、自增字段冲突&#xff0c;这些看似小问题却能让整个迁移过程变成一场持久战。今天介绍的这款轻量级工具&#xff0c;就像数据库世界的"同声传译"&#xff0c;让两种数据库系统实现无缝对…

作者头像 李华
网站建设 2026/2/22 1:12:32

大模型微调实战:使用Qwen3-32B进行领域适配

大模型微调实战&#xff1a;使用Qwen3-32B进行领域适配 在医疗报告自动生成、金融合规审查或法律文书起草这些高专业门槛的场景中&#xff0c;一个尴尬的问题正频繁浮现&#xff1a;我们手握千亿参数的大模型&#xff0c;却依然无法准确识别“对赌协议中的回购义务触发条件”&a…

作者头像 李华
网站建设 2026/2/7 12:34:09

5款主流付费墙绕过工具深度评测:技术原理与实战效果大揭秘

5款主流付费墙绕过工具深度评测&#xff1a;技术原理与实战效果大揭秘 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容付费订阅日益普及的今天&#xff0c;如何高效获取免费…

作者头像 李华