news 2026/7/10 15:09:24

洛谷 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/7/10 2:23:55

三步解锁抖音解析神器:轻松获取无水印视频与创作者信息

三步解锁抖音解析神器&#xff1a;轻松获取无水印视频与创作者信息 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 还在为抖音视频的水印烦恼吗&#xff1f;想要快速收集创作者信息却无从下手&#xff1f;现在&…

作者头像 李华
网站建设 2026/7/10 5:56:55

为什么说Qwen3-32B是当前最强32B级别开源模型?

为什么说Qwen3-32B是当前最强32B级别开源模型&#xff1f; 在大模型军备竞赛愈演愈烈的今天&#xff0c;参数规模早已不是衡量“强大”的唯一标准。当百亿甚至千亿级模型因高昂部署成本被束之高阁时&#xff0c;一个更现实的问题浮出水面&#xff1a;有没有一种可能&#xff0c…

作者头像 李华
网站建设 2026/7/10 5:49:19

Beyond Compare 5密钥生成完整指南:快速获取永久授权

Beyond Compare 5密钥生成完整指南&#xff1a;快速获取永久授权 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件对比工具&#xff0c;其强大的功能让无数开…

作者头像 李华
网站建设 2026/7/10 12:04:29

Vue大屏自适应终极解决方案:v-scale-screen组件完整指南

Vue大屏自适应终极解决方案&#xff1a;v-scale-screen组件完整指南 【免费下载链接】v-scale-screen Vue large screen adaptive component vue大屏自适应组件 项目地址: https://gitcode.com/gh_mirrors/vs/v-scale-screen 在当今数据驱动的时代&#xff0c;Vue大屏自…

作者头像 李华
网站建设 2026/7/10 12:06:26

41、实时内核要求与Linux实时实现路径解析

实时内核要求与Linux实时实现路径解析 1. 实时内核的常见要求 实时系统旨在及时且恰当地处理内外部事件,这对内核提出了一系列严格要求。 1.1 细粒度可抢占内核 实时内核需能尽快从低优先级任务切换到高优先级任务,此切换时间即抢占粒度,最长等待重新调度时间为最坏情况…

作者头像 李华