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

洛谷 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; }
http://www.cnnetsun.cn/news/72376.html

相关文章:

  • 轮毂分类检测数据集介绍-855张 汽车制造质检 车辆维护和检测 智能交通系统 二手车评估 自动驾驶识别模块 工业机器人视觉系统
  • LangChain函数调用增强Qwen3-VL-30B的外部工具执行能力
  • 乳牛皮肤疾病检测数据集介绍-56张图片 智能养殖管理 农业疾病诊断辅助 畜牧业健康监控 图像分类模型训练与评测 教育与科研
  • 企业AI落地全攻略:从零代码到安全合规,开发者和管理者都该收藏的实战指南
  • 42、深入了解Xenomai实时系统:特性、架构与应用
  • 如何在浏览器中3分钟搞定串口调试?波特律动串口助手超详细使用指南
  • 5分钟搞定智慧树插件:让你的网课学习效率翻倍
  • 北大学者带你拖拽3D物体,像玩拼图一样让虚拟世界动起来
  • Vscode调试Python脚本运行ACE-Step:快速定位错误
  • PyTorch JIT编译提升Stable Diffusion 3.5 FP8运行效率可行性研究
  • QQ音乐数据获取Python工具完整使用指南
  • Visual Studio中的字典
  • ROG主板隐藏温度监控功能:快速激活T Sensor的实用指南
  • Vue大屏自适应终极解决方案:从适配难题到完美展示
  • 【建议收藏】小白进阶必备:RAG知识库构建实战指南与技巧
  • 开源新星:Seed-Coder-8B-Base助力PyCharm社区版实现智能编程
  • 分布式消息队列kafka【四】—— 消费者进阶提升
  • HunyuanVideo-Foley实战教程:结合HTML与JavaScript实现实时音效预览
  • 5步部署WVP-GB28181-Pro:开源国标平台的终极指南
  • X-TRACK 3D打印外壳DIY实战:从零打造专业级GPS自行车码表
  • 浏览器串口助手终极指南:零安装调试嵌入式设备
  • gpt-oss-20b与ChatGLM-6B在中文场景下的对比实验
  • 安装包体积压缩秘籍:基于vLLM的精简镜像制作
  • ZonyLrcToolsX歌词下载教程:5分钟学会跨平台音乐歌词管理
  • 终极指南:5个OpenFace面部行为分析实战技巧
  • Maven项目如何引入FLUX.1-dev?Java开发者必看集成方案
  • EasyAdmin8终极指南:5分钟构建企业级后台管理系统的完整解决方案
  • 微信小程序表格组件终极指南:5分钟快速上手miniprogram-table-component
  • PySide6 的 QSettings简单应用学习笔记
  • 使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成